博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CMenu(弹出式菜单)
阅读量:4298 次
发布时间:2019-05-27

本文共 1801 字,大约阅读时间需要 6 分钟。

0.为菜单项手动添加命令消息响应函数(共有3处)
afx_msg void OnTitle();//在类声明中添加命令消息响应函数的声明
ON_COMMAND(ID_MENU_TILE,OnTitle);//BEGIN_MESSAGE_MAP后
void CXXXDlg::OnTitle(){//...函数主体}
1.添加已有的菜单资源
CMenu menu;
menu.LoadMenu(IDR_MENU1);//IDR_MENU1为已有的菜单资源ID
CMenu* pPopup = menu.GetSubMenu(1);//选择菜单资源中的子菜单项
ClientToScreen(&point);//将客户区坐标转换为盘屏幕坐标
//::GetCursorPos(&point); 取得当前的屏幕坐标
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,point.x,point.y,this);//显示右键菜单
CDialogEx::OnRButtonUp(nFlags, point);
2.弹出式菜单2
#define ID_CONNNECT (WM_USER+5)
#define ID_ADD_DEVICE (WM_USER+6)
CMenu Menu;
Menu.CreatePopupMenu();
Menu.AppendMenu(MF_STRING , ID_CONNNECT, _T("china"));
Menu.AppendMenu(MF_STRING , ID_ADD_DEVICE,_T("japan"));
CPoint pt;
::GetCursorPos(&pt);

Menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, this);

//某些情况,This 替换为AfxGetMainWnd(),当如果主窗口 针对这些ID号具有处理的话,会比较方便。

3.弹出式菜单3
CMenu Menu;

Menu.CreatePopupMenu();

CMenu MyMenu0,MyMenu1; 
Menu.AppendMenu(MF_STRING , ID_WNDINDEX, strText);
Menu.AppendMenu(MF_SEPARATOR , 0,"");//分隔符号
Menu.AppendMenu(MF_STRING , ID_DISCONNECT, _T("Test"));
MyMenu0.CreateMenu();
MyMenu0.AppendMenu(MF_STRING , ID_DEVICE_ADDPOINT, _T("Test1"));//代码1
Menu.AppendMenu(MF_POPUP,(UINT)MyMenu0.m_hMenu, _T("Test2"));//代码2:代码1和代码2可上下颠倒
MyMenu1.CreateMenu();
MyMenu1.AppendMenu(MF_STRING , ID_DEVICE_CLEANCUSTOM, _T("Test3"));
Menu.AppendMenu(MF_POPUP,(UINT)MyMenu1.m_hMenu, _T("Clean"));//弹出式菜单中添加弹出式菜单
Menu.AppendMenu(MF_STRING , ID_DEVICE_COMSETTING,  _T("Test4"));
Menu.AppendMenu(MF_STRING , ID_DEVICE_IRPARAMSETTING,  _T("Test5"));
CPoint pt;
::GetCursorPos(&pt);
Menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, this);
MyMenu0.Detach();//Menu管理了MyMenu0和MyMenu1的各自的句柄m_hMenu,故而需要分离以避免析构时出现异常,对同一个资源进行多次释放
MyMenu1.Detach();

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

转载地址:http://slnws.baihongyu.com/

你可能感兴趣的文章
数据结构与算法三: 数组
查看>>
Activiti工作流会签二 启动流程
查看>>
Activiti工作流会签三 撤销,审批,驳回
查看>>
Oauth2方式实现单点登录
查看>>
CountDownLatch源码解析加流程图详解--AQS类注释翻译
查看>>
ES相关度评分
查看>>
我们一起做一个可以商用的springboot脚手架
查看>>
idea在搭建ssm框架时mybatis整合问题 无法找到mapper
查看>>
java设计基本原则----单一职责原则
查看>>
HashMap的实现
查看>>
互斥锁 synchronized分析
查看>>
java等待-通知机制 synchronized和waity()的使用实践
查看>>
win10 Docke安装mysql8.0
查看>>
docker 启动已经停止的容器
查看>>
order by 排序原理及性能优化
查看>>
Lock重入锁
查看>>
docker安装 rabbitMq
查看>>
git 常用命令 入门
查看>>
linux安装docker
查看>>
关闭selinx nginx无法使用代理
查看>>