菜单和加速键资源的使用
一、菜单资源的使用
1.在资源描述文件中定义菜单资源
菜单名 MENU [,选项,选项…]
{
//菜单项列表
}
1)选项
选 项 说 明
DISCARDABLE 当不再需要菜单时可丢弃
FIXED 将菜单保存在内存中的固定位置
LOADONCALL 需要时加载菜单
MOVEABLE 菜单在内存中可移动
PRELOAD 立即加载菜单
2)菜单选项
弹出式菜单(OPUP)格式:POPUP "菜单项名" [,选项,选项…]
非弹出式菜单(MENUITEM)格式:MENUITEM"菜单项名"菜单项标识(ID)" [,选项]
水平分隔符:MENUITEM SEPARATOR
2.加载菜单资源
1) 方法1:在窗口类中加载菜单
在窗口类的定义中加载菜单资源通过下列语句实现:wndclass.lpszMenuName=lpszMenuName;
2) 方法2:在创建窗口时加载菜单
在调用函数CreateWindow创建窗口时前调用函数LoadMemu加载菜单:
HMENU LoadMemu
(
hInstance, // hInstance为当前程序的实例句柄
lpszMenuName // lpszMenuName为窗口菜单名
);
3) 方法3:动态加载菜单
在程序中先调用函数LoadMenu获取菜单句柄后,再调用函数SetMenu动态地加载菜单:
BOLL SetMenu
(
HWND hwnd, // Hwnd为窗口句柄
HMENU hmenu // hmenu为菜单句柄
);
3.菜单中菜单项的操作