-
c语言入门之在BCB中实现菜单资源的动态加载
刘浩
摘要:本文主要介绍了菜单资源的加载及与相关联的菜单命令操作。
在BCB中实现菜单资源的动态加载是一件非常容易做到的事情,其过程如下:
一、建立菜资源文件sample.rc, sample.h
file://----------sample.rc------------------
#include "sample.h"
sample MENU
{
MENUITEM "&Soup", 100
MENUITEM "S&alad", 101
POPUP "&Entree"
{
MENUITEM "&Fish", 200
MENUITEM "&Chicken", 201, CHECKED
POPUP "&Beef"
{
MENUITEM "&Steak", 301
MENUITEM "&Prime Rib", 302
}
}
MENUITEM "&Dessert", 103
}
file://----------sample.h------------
#define IDM_SOUP 100
#define IDM_SALAD 101
#define IDM_ENTEREE 102
#define IDM_FISH 200
#define IDM_CHICKEN 201
#define IDM_BEEF 202
#define IDM_STEAK 301
#define IDM_PRIME 302
#define IDM_DESSERT 103
二、建立一个空项目
启动BCB,建立一个空项目,默认保存
三、在窗体头文件中加入资源头文件和消息映射事件
#include "sample.h"
protected:
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_COMMAND,TWMCommand,WMCommand)
END_MESSAGE_MAP(TForm)
void __fastcall WMCommand(TWMCommand&);
四、在窗体OnCreate事件中用API函数加载菜单资源
::SetMenu(Handle,LoadMenu(HInstance,"sample"));
五、编写消息映射事件关联菜单操作
void _fastcall TForm1::WMCommand(TWMCommand& Message)
{
switch(Message.ItemID)
{
case IDM_STEAK: MessageBox(Handle,"Hello",0,MB_OK);
break;
case IDM_PRIME: MessageBox(Handle,"World",0,MB_OK);
break;
default: Close();
break;
}
}
六、小结
用上述的方法不难实现图标、字符串、位图资源的加载。
以上程序在WIN2000,Borland C++ Builder 5.0中编译通过。
摘要:本文主要介绍了菜单资源的加载及与相关联的菜单命令操作。
在BCB中实现菜单资源的动态加载是一件非常容易做到的事情,其过程如下:
一、建立菜资源文件sample.rc, sample.h
file://----------sample.rc------------------
#include "sample.h"
sample MENU
{
MENUITEM "&Soup", 100
MENUITEM "S&alad", 101
POPUP "&Entree"
{
MENUITEM "&Fish", 200
MENUITEM "&Chicken", 201, CHECKED
POPUP "&Beef"
{
MENUITEM "&Steak", 301
MENUITEM "&Prime Rib", 302
}
}
MENUITEM "&Dessert", 103
}
file://----------sample.h------------
#define IDM_SOUP 100
#define IDM_SALAD 101
#define IDM_ENTEREE 102
#define IDM_FISH 200
#define IDM_CHICKEN 201
#define IDM_BEEF 202
#define IDM_STEAK 301
#define IDM_PRIME 302
#define IDM_DESSERT 103
二、建立一个空项目
启动BCB,建立一个空项目,默认保存
三、在窗体头文件中加入资源头文件和消息映射事件
#include "sample.h"
protected:
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_COMMAND,TWMCommand,WMCommand)
END_MESSAGE_MAP(TForm)
void __fastcall WMCommand(TWMCommand&);
四、在窗体OnCreate事件中用API函数加载菜单资源
::SetMenu(Handle,LoadMenu(HInstance,"sample"));
五、编写消息映射事件关联菜单操作
void _fastcall TForm1::WMCommand(TWMCommand& Message)
{
switch(Message.ItemID)
{
case IDM_STEAK: MessageBox(Handle,"Hello",0,MB_OK);
break;
case IDM_PRIME: MessageBox(Handle,"World",0,MB_OK);
break;
default: Close();
break;
}
}
六、小结
用上述的方法不难实现图标、字符串、位图资源的加载。
以上程序在WIN2000,Borland C++ Builder 5.0中编译通过。
最新更新
Objective-C语法之代码块(block)的使用
VB.NET eBook
Add-in and Automation Development In VB.NET 2003 (F
Add-in and Automation Development In VB.NET 2003 (8
Add-in and Automation Development in VB.NET 2003 (6
Add-in and Automation Development In VB.NET 2003 (5
AddIn Automation Development In VB.NET 2003 (4)
AddIn And Automation Development In VB.NET 2003 (2)
Addin and Automation Development In VB.NET 2003 (3)
AddIn And Automation Development In VB.NET 2003 (1)
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
武装你的WEBAPI-OData入门
武装你的WEBAPI-OData便捷查询
武装你的WEBAPI-OData分页查询
武装你的WEBAPI-OData资源更新Delta
5. 武装你的WEBAPI-OData使用Endpoint 05-09
武装你的WEBAPI-OData之API版本管理
武装你的WEBAPI-OData常见问题
武装你的WEBAPI-OData聚合查询
OData WebAPI实践-OData与EDM
OData WebAPI实践-Non-EDM模式