MFCMFCMenuButton 的用法

Posted 歪闷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFCMFCMenuButton 的用法相关的知识,希望对你有一定的参考价值。

 

背景:因为对话框界面上的空间有限,为了节省空间,我决定采用一个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;
}

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

 

以上是关于MFCMFCMenuButton 的用法的主要内容,如果未能解决你的问题,请参考以下文章

SQL Select 语句的用法

jquery中的$的特殊用法

Xcode中的变量模板(variable template)的用法

创建片段而不从 java 代码实例化它

微信小程序第七天WXML语法之模板用法

微信小程序第七天WXML语法之模板用法