MFC中如何添右键弹出菜单
来源:互联网 发布:sql修改字段绑定默认值 编辑:程序博客网 时间:2024/05/22 06:21
VS已经放弃了VC6.0下那种通过控件来添加右键菜单的方法。(两者其实差不多)
VC6.0下添加右键菜单那个控件,实际就是帮你做了上面谢谢代码生成过程。 在VS下自己添加也是一样的。
具体做法——
直接响应你要添加弹出菜单的窗口的OnContextMenu,然后添加一下下面的代码就行了:
- void CMyF1Dlg::OnContextMenu(CWnd* pWnd, CPoint point)
- {
- // CG: This block was added by the Pop-up Menu component//Pop-Up Menu在代码上就添加了下面的这段
- {
- if (point.x == -1 && point.y == -1){
- //keystroke invocation
- CRect rect;
- GetClientRect(rect);
- ClientToScreen(rect);
- point = rect.TopLeft();
- point.Offset(5, 5);
- }
- CMenu menu; //后面要用的CMenu对象
- VERIFY(menu.LoadMenu(CG_IDR_POPUP_ABOUT_DLG));//此句是装载自定义的右键菜单
- CMenu* pPopup = menu.GetSubMenu(0);////获得子菜单指针(0表示获取第一个弹出菜单 )
- ASSERT(pPopup != NULL);
- CWnd* pWndPopupOwner = this;
- while (pWndPopupOwner->GetStyle() & WS_CHILD)
- pWndPopupOwner = pWndPopupOwner->GetParent();
- pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,
- pWndPopupOwner); //显示弹出菜单,参数依次为(鼠标在菜单左边|跟踪键,x,y,this)
- }
- }
注意添加的时候有些情况下会是:void CMyF1Dlg::OnContextMenu(CWnd*/*pWnd*/, CPoint /*point*/ )
只需要把.h文件和.cpp文件对应的位置都改成以下图, 就可以了。 void CMyF1Dlg::OnContextMenu(CWnd* pWnd, CPoint point)最简要的代码方式,就四句话,也OK
CMenu m_menu;
m_menu.LoadMenu(IDR_MAINFRAME);
CMenu *popupmenu = m_menu.GetSubMenu(0);
popupmenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWnd, 0);
0 0
- MFC中如何添右键弹出菜单
- MFC中如何添右键弹出菜单
- MFC中右键弹出菜单
- MFC右键弹出菜单
- MFC 右键弹出菜单
- MFC-右键弹出菜单
- MFC右键弹出菜单
- MFC制作右键弹出菜单
- MFC里右键弹出菜单
- MFC---鼠标右键弹出菜单
- VS2013 MFC右键弹出菜单
- 问题 如何实现在listcontrol中右键弹出菜单啊?
- MFC 如何生成右键菜单
- MFC CListBox实现右键单击弹出菜单
- MFC制作右键弹出菜单 指定位置
- MFC右键弹出菜单的示例
- MFC右键弹出菜单的创建
- MFC右键弹出菜单,并添加响应函数
- (beginer) 凸包+点在多边形内 UVA 11072 Points
- 相爱是最美的遇见
- Android菜鸟的成长笔记(13)——异步任务(Async Task)
- v8插件编译使用
- taskSpawn( )函数,semBCreate()函数,二进制信号量实现互斥和同步
- MFC中如何添右键弹出菜单
- 如何获得所有android应用程序UID
- Leetcode Word Ladder
- Android Provider
- cocos2dx,关于CCArray的基本用法
- 积累的一些常用shellcode
- 教大家简单的软件项目标书写法
- Drawable资源--AnimationDrawable
- _bstr_t与BSTR