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;
    }

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

  • 相关阅读:
    非易失性Flash详解
    易失性存储器SRAM基础知识
    嵌入式STT-MRAM效应与流致反转
    访问SDRAM的低功耗优化设计方案
    SRAM的容量扩展
    SDRAM功耗来源
    如何使FRAM MCU速度更快所需功耗最低
    Nand Flash结构及错误机制
    提升SRAM性能的传统方法
    word在一个文档中使用多个页码,页眉
  • 原文地址:https://www.cnblogs.com/waimen/p/6861603.html
Copyright © 2011-2022 走看看