[MFC]菜单CMenu用法

本文介绍了在MFC中如何为CMFCToolBar工具栏按钮添加下拉菜单,以及如何动态添加右键弹出菜单。通过资源视图创建IDR_MENU_LIST,然后在MainFrm的OnCreate函数中进行配置。同时,文章还讲解了菜单项响应函数的添加方法和处理窗口WM_RBUTTONDOWN消息以实现右键功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CMFCToolBar工具栏按钮添加下拉菜单

1. 在资源视图下制作下拉菜单IDR_MENU_LIST

  • Menu1 --- ID_MENU_1
  • Menu2 --- ID_MENU_2
  • Menu3 --- ID_MENU_3

2. 在MainFrm文件OnCreate函数中添加如下代码

    CMenu Menu;
    CMenu* subMenu;
    
    Menu.LoadMenu(IDR_MENU_LIST);
    subMenu = Menu.GetSubMenu(0);

    int iImage = 7;    //对应工具栏中的第7个图标
    m_wndToolBar.ReplaceButton (ID_MENU,   //对应工具栏中第7个图标的ID
                CMFCToolBarMenuButton(ID_MENU,  (HMENU)*subMenu, iImage, NULL, FALSE));

    subMenu = NULL;

3.添加菜单项响应函数

    void CMyTestView::OnMenu1()
    {
        AfxMessageBox(_T("OnMenu1"));

    }

动态添加右键弹出菜单

   给窗口添加WM_RBUTTONDOWN消息,并添加如下代码

    //创建菜单
    CMenu menu;

    //设置菜单底色
    CBrush brush;
    brush.CreateSolidBrush(RGB(255, 255, 255));
    MENUINFO mi;  
    mi.cbSize = sizeof(M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值