MFC对话框添加菜单栏

                                              添加菜单栏步骤

菜单栏CMenu:
1、添加菜单
   1、在资源文件中 添加Menu资源,确定ID
   2、可在Menu上插入相关菜单
2、绑定对话框
   在资源文件中找到对话框Dialog,在其属性上,添加Menu的ID
3、添加菜单响应函数
   两种方法
     1、在项目-类向导上,确定类名后,在命令-对象上找到相应菜单Id
        如:ID_Menu_OpenFile. 添加COMMAND消息就好。
     2、在资源文件Menu上,直接双击此菜单即可。
4、在对话框设置菜单状态:
   CMenu *menu = GetMenu();
    if(isOpenFile){
        menu->EnableMenuItem(ID_OpenFile_Menu, MF_GRAYED);
        menu->EnableMenuItem(ID_CloseFile_Menu, MF_ENABLED);
        menu->EnableMenuItem(ID_PicEdit_Menu, MF_ENABLED);
    } else{
        menu->EnableMenuItem(ID_OpenFile_Menu, MF_ENABLED);
        menu->EnableMenuItem(ID_CloseFile_Menu, MF_GRAYED);
        menu->EnableMenuItem(ID_PicEdit_Menu, MF_GRAYED);
    }
5、添加浮点菜单
   CMenu *pMenu, Menu;
   Menu.LoadMenu(IDR_MENU2);
   pMenu = Menu.GetSubMenu(0);
   ClientToScreen(&mousePos); //mousePos为位置
   pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, mousePos.x, mousePos.y, this);

6、添加菜单快捷方式
   1、菜单上的提示,在菜单命名时,可加\tCtrl+O,如:打开文件\tCtrl+O
   2、在资源文件中添加:Accelerator快捷资源,然后编辑:
      在ID栏填写所需要快捷的菜单ID,修饰符、键 自行编辑
   3、在对话框类上,添加快捷键变量:HACCEL mhAccel;
   4、在类的成员函数OnInitDialog()中添加:
      hAccel = ::LoadAccelerators(AfxGetInstanceHandle(),
                                  MAKEINTRESOURCE(IDR_ACCELERATOR1));
   5、在PreTranslateMessage(MSG* pMsg)函数中,添加:
          if(::TranslateAccelerator(GetSafeHwnd(),mhAccel,pMsg))
        return TRUE;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值