WinCE中为基于对话框的程序动态增加菜单

http://www.cnblogs.com/xFreedom/archive/2011/05/14/2046217.html


在使用MFC编写WinCE基于对话框的程序时,有的时候想给程序添加菜单项,可是使用桌面版得方法不起作用,不知道为什么?

桌面版:

CMenu   *menu   =   new   CMenu; 
menu-> LoadMenu(IDR_MENU1); 
SetMenu(menu);

这样就可以为程序添加菜单了,可是这种方法不知道为什么在WinCE中部起作用,还是另辟蹊径吧!

WinCE版:

1.在*.rc资源上右键==>Add Resource==>Menu==>New,这样就添加了一个菜单资源,默认ID为IDR_MENU1;

2.打开IDR_MENU1,增加菜单项,然后为各菜单项添加命令响应,方法是:在菜单项上右键==>Add Event Handler,

   在Message Type中选择COMMAND,class list中选择对话框类吧,函数名可以根据自己的需要进行修改,完了之后

   点击Add and Edit,此时VS会帮你跳转到自动生成代码处,接下来添加具体操作就可以了;

3.在OnInitDialog()中添加如下代码:

HINSTANCE g_hInst = ::AfxGetInstanceHandle(); 
 HWND m_hWndMenu;
 m_hWndMenu  = ::CommandBar_Create(g_hInst, m_hWnd, 1);
 if(m_hWndCB != NULL) 
 { 
    ::CommandBar_InsertMenubar(m_hWndMenu, g_hInst, IDR_MENU1, 0); 
    ::CommandBar_AddAdornments(m_hWndMenu, 0, 0); 
    ::CommandBar_Show(m_hWndMenu, TRUE);
 }

   编译后重新运行就可以看见你自己用代码动态添加的菜单了。

   需要注意的是:在对话框中要给菜单留出一定的位置用于显示,要不然创建后的菜单挤在一起的,还是没法看,这个自己稍微调整一下就OK了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值