Windows编程下菜单资源得使用

菜单分类
窗口的顶层菜单
弹出式菜单
系统菜单
HMENU类型表示菜单,ID表示菜单项。

资源相关
资源脚本文件:*.rc文件
编译器:RC.EXE

CL.EXE
.c/.cpp ------------------> .obj 
RC.EXE                          
.rc ----------------------> .res 
LINK.EXE
.obj + .res --------------> .exe

菜单资源的使用
添加菜单资源
加载菜单资源
1>注册窗口类时设置菜单

wc.lpszMenuName=(char*)IDR_MENU1;

2>创建窗口传参设置菜单

HMENU hMenu=LoadMenu(hIns,(char*)IDR_MENU1);
HWND hWnd=CreateWindowEx(0,"WinMenu","window",WS_OVERLAPPEDWINDOW,100,100,500,500,NULL,hMenu,hIns,NULL);

3>在主窗口WM_CREATE消息中利用SetMenu函数设置菜单

HMENU hMenu=LoadMenu(g_hInstance,(char*)IDR_MENU1);
SetMenu(hWnd,hMenu);

加载菜单资源
HMENU LoadMenu(
HINSTANCE hInstance,//handle to module
LPCTSTR lpMenuName//menu name or resource identifier
);

菜单在工程目录下得资源代码

IDR_MENU1 MENU
BEGIN
    POPUP "文件"
    BEGIN
        MENUITEM "新建",                          ID_NEW
        MENUITEM SEPARATOR
        MENUITEM "退出",                          ID_EXIT
    END
    POPUP "帮助"
    BEGIN
        MENUITEM "关于",                          ID_ABOUT
    END
END

命令消息(WM_COMMAND)处理
附带信息:

wParam: HIWORD - 对于菜单为0 LOWORD - 菜单项的ID
lParam - 对于菜单为0

switch(msgID){
	case WM_COMMAND:
		OnCommand(hWnd,wParam);
		break;
}
void OnCommand(HWND hWnd,WPARAM wParam){
	switch(LOWORD(wParam)){
	case ID_NEW:
		MessageBox(hWnd,"新建被点击","	Infor",MB_OK);
		break;
	case ID_EXIT:
		MessageBox(hWnd,"退出被点击","Infor",MB_OK);
		break;
	case ID_ABOUT:
		MessageBox(hWnd,"关于被点击","Infor",MB_OK);
		break;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值