zoukankan      html  css  js  c++  java
  • 【MFC】MFCMenuButton 的用法

    背景:因为对话框界面上的空间有限,为了节省空间,我决定采用一个MFCMenuButton用来实现同一类按钮事件。本来我打算设置两个按钮:“单个删除文件”和“清空所有文件”两个按钮,但是空间太小,而且这两个按钮的功能相似,所以,我干脆将这两个按钮组合成为一个按钮,采用下拉菜单选择的方式分别触发按钮事件。

    首先,需要创建一个菜单资源。如果资源视图中没有Menu文件夹,则需要在资源视图窗口右击后缀为.rc的文件夹,选择添加资源,弹出对话框。

    在弹出的对话框中选择Menu,之后点击新建按钮。在新建的Menu上面设置下拉菜单每个选项的名字。

    分别设置两个选项的ID如下所示。

    好了,现在这个名字叫做"IDR_MENU1"的菜单就编辑好了,下面在MFCMenuButton中调用该菜单资源即可。

    首选,需要新建一个MFCMenuButton的控件,然后添加关联变量,假设为m_MenuButton1。

     在对话框的OnInitDialog()函数中插入下面的代码,载入菜单资源。

    1 CMenu* pMenu = new CMenu;
    2 pMenu->LoadMenu(IDR_MENU1); //载入菜单资源
    3 m_MenuButton1.m_hMenu = pMenu->GetSubMenu(0)->GetSafeHmenu();

     在按钮事件中插入下面的代码进行测试。

    void CTABPAGE2::OnBnClickedMfcmenubuttonDelete1()
    {
        // TODO: 在此添加控件通知处理程序代码
        if(m_MenuButton1.m_nMenuResult == ID_X_Single)
        {
            AfxMessageBox(_T("单个删除文件!"));
        }
        else if(m_MenuButton1.m_nMenuResult == ID_X_All)
        {
            AfxMessageBox(_T("删除全部文件"));
        }
         
        return;
    }

    弹出对话框的部分替换成为功能语句即可分别完成不同的功能。

  • 相关阅读:
    JQuery之在线引用
    SpringBoot之durid连接池配置
    VueJs之事件处理器
    VueJs之样式绑定
    VueJs之判断与循环监听
    PTA 7-8 暴力小学(二年级篇)-求出4个数字 (10分)
    PTA 7-7 交替字符倒三角形 (10分)
    PTA 7-5 阶乘和 (10分)
    PTA 7-4 哥德巴赫猜想 (10分)
    PTA 7-3 可逆素数 (15分)
  • 原文地址:https://www.cnblogs.com/waimen/p/6861603.html
Copyright © 2011-2022 走看看