【MFC】MFCMenuButton 的用法
2024-09-29 22:26:57
背景:因为对话框界面上的空间有限,为了节省空间,我决定采用一个MFCMenuButton用来实现同一类按钮事件。本来我打算设置两个按钮:“单个删除文件”和“清空所有文件”两个按钮,但是空间太小,而且这两个按钮的功能相似,所以,我干脆将这两个按钮组合成为一个按钮,采用下拉菜单选择的方式分别触发按钮事件。
首先,需要创建一个菜单资源。如果资源视图中没有Menu文件夹,则需要在资源视图窗口右击后缀为.rc的文件夹,选择添加资源,弹出对话框。
在弹出的对话框中选择Menu,之后点击新建按钮。在新建的Menu上面设置下拉菜单每个选项的名字。
分别设置两个选项的ID如下所示。
好了,现在这个名字叫做"IDR_MENU1"的菜单就编辑好了,下面在MFCMenuButton中调用该菜单资源即可。
首选,需要新建一个MFCMenuButton的控件,然后添加关联变量,假设为m_MenuButton1。
在对话框的OnInitDialog()函数中插入下面的代码,载入菜单资源。
CMenu* pMenu = new CMenu;
pMenu->LoadMenu(IDR_MENU1); //载入菜单资源
m_MenuButton1.m_hMenu = pMenu->GetSubMenu()->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;
}
弹出对话框的部分替换成为功能语句即可分别完成不同的功能。
最新文章
- 常用python机器学习库总结
- js仿微信语音播放
- sublime Text 的安装、破解、汉化、使用
- canvas应用-思维导图
- 玩SSH,SFTP
- axure制作圆形组件——axure制作技巧
- check_partition_aft_merge.sql
- pyspark 内容介绍(一)
- Android系统--输入系统(九)Reader线程_核心类及配置文件
- 盒子端 CSS 动画性能提升研究
- DC 辅域转主域
- redis客户端可以连接集群,但JedisCluster连接redis集群一直报Could not get a resource from the pool
- Manjaro (KDE)安装踩坑记录
- Tensorflow datasets.shuffle repeat batch方法
- .NetCore中EFCore的使用整理(二)-关联表查询
- (原)Android在子线程用handler发送的消息,主线程是怎么loop到的?
- request.POST 和 request.GET
- Hive错误:Permission denied: user=anonymous, access=EXECUTE, inode=”/tmp”
- Apache服务器下phalcon项目报Mod-Rewrite is not enabled问题
- C#字符串加密解密
热门文章
- 让开发更简单 —— Coding Enterprise 发布
- jqGrid 跨页选择以及回显的处理
- Vue 全家桶单元测试简要指南
- 边界提取_MATLAB
- Educational Codeforces Round 52E(构造,快速幂)
- Codeforces#514D(三分,简单二维几何)
- [Xcode 实际操作]四、常用控件-(5)UILabel文本标签自定义文字样式
- mac 终端命令kill掉某个指定端口
- 关于json_encode和json_decode
- Java基础笔记(十六)——继承