MFC 中CMenu菜单的的使用
2015-10-26 18:15
169 查看
这里以生活中鼠标右键点击出来属性的菜单为例子。
第一:在工程中使用菜单控件来生成右键显示的项
第二:直接用API函数来生成右键显示的项
第一种方法比较简单,其属性可以在工程中选择。
首先创建鼠标右键的消息响应函数
然后在消息响应函数中添加如下代码
GetCursorPos(&point); //获取鼠标的当前位置
CMenu menu;//声明菜单对象
VERIFY(menu.LoadMenu(IDR_TEST_));//判断加载菜单资源是否成功
CMenu* pPopup = menu.GetSubMenu(0); //获得第一个弹出菜单的指针,也就是菜单中的第一个弹出菜单
ASSERT(pPopup != NULL); //p断言不为空
CWnd* pWndPopupOwner = this;//当前类的指针
//下面遍历主要是为找到第一个不含有WS_CHILD的窗口指针
while (pWndPopupOwner->GetStyle() & WS_CHILD)
pWndPopupOwner = pWndPopupOwner->GetParent();
//下面就是弹出菜单
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWndPopupOwner);
第2种
GetCursorPos(&point);
CMenu menu1;
menu1.CreatePopupMenu(); //动态创建弹出式菜单对象
menu1.AppendMenu(MF_STRING,IDR_TEST_,L" 菜单项");
menu1.InsertMenu(1,MF_BYPOSITION|MF_POPUP|MF_STRING,(UINT)IDR_TEST_,L"子菜单"); //添加子菜单
menu1.TrackPopupMenu(TPM_RIGHTBUTTON, point.x, point.y, this);
menu1.DestroyMenu();
第一:在工程中使用菜单控件来生成右键显示的项
第二:直接用API函数来生成右键显示的项
第一种方法比较简单,其属性可以在工程中选择。
首先创建鼠标右键的消息响应函数
然后在消息响应函数中添加如下代码
GetCursorPos(&point); //获取鼠标的当前位置
CMenu menu;//声明菜单对象
VERIFY(menu.LoadMenu(IDR_TEST_));//判断加载菜单资源是否成功
CMenu* pPopup = menu.GetSubMenu(0); //获得第一个弹出菜单的指针,也就是菜单中的第一个弹出菜单
ASSERT(pPopup != NULL); //p断言不为空
CWnd* pWndPopupOwner = this;//当前类的指针
//下面遍历主要是为找到第一个不含有WS_CHILD的窗口指针
while (pWndPopupOwner->GetStyle() & WS_CHILD)
pWndPopupOwner = pWndPopupOwner->GetParent();
//下面就是弹出菜单
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWndPopupOwner);
第2种
GetCursorPos(&point);
CMenu menu1;
menu1.CreatePopupMenu(); //动态创建弹出式菜单对象
menu1.AppendMenu(MF_STRING,IDR_TEST_,L" 菜单项");
menu1.InsertMenu(1,MF_BYPOSITION|MF_POPUP|MF_STRING,(UINT)IDR_TEST_,L"子菜单"); //添加子菜单
menu1.TrackPopupMenu(TPM_RIGHTBUTTON, point.x, point.y, this);
menu1.DestroyMenu();
相关文章推荐
- MFC MDI去掉滚动条
- nagios监控windows主机
- Link
- Java for循环的几种用法分析
- EntityFramework6 Execute Storeprocedure
- 解决每次升级Xcode后三方插件失效问题
- java得到系统时区 +0800
- 在webView上添加手势
- C++模板
- sql 表连接 join
- iis中上传文件大小限制的修改方法
- java系统学习(十九) --------网络编程基础
- 内部类和静态修饰符static
- WordNet学习笔记
- java系统学习(十九) --------网络编程基础
- SharePoint迁移数据到生产环境
- 第一章:XML简介
- 夺命雷公狗jquery---24事件移除unbind
- Python基础(十一) 使用xml.dom 创建XML文件与解析
- winsock2获取网页