hur.cn - 华软网

 热门搜索

VC2008 sp1 中如何创建右键弹出菜单

  作者:未知    来源:网络    更新时间:2010/9/12
本人想创建一个右键弹出菜单,但是在vc2008 的sp1中好像不能捕获鼠标右键的弹起消息的,我在OnRButtonUp中设置了断点程序到达断点是也不会停止,这个问题困扰了我两个星期了,希望高人指教!!!
---华软 网友回答---
是那个对象类?如果是窗口类,响应OnConextMenu就可以了。你这问题没有一点信息量。
---华软网友回复---
在CView的派生类中在OnConextMenu中也不可以,OnConextMenu就是在OnRButtonUp里面调用的。我从网上说好像是应为用了bcg界面库的原因,但是我在网上找了很久也没有找到解决办法,现在尝试跟踪WM_RBUTTONUP消息,看看bcg到底做了什么。
---华软网友回复---
学习了。。
---华软网友回复---
WM_CONTEXTMENU消息
---华软网友回复---
也是不行的、、、
---华软网友回复---
重载 PreTranslateMessage截取消息!
BOOL CBaseDialog::PreTranslateMessage(MSG* pMsg) 
{
if ((pMsg->message == WM_RBUTTONDOWN)
{
}
return CDialog::PreTranslateMessage(pMsg);
}
---华软网友回复---
另外,2008 sp1中,菜单最好用CMFCMenu.....
---华软网友回复---
怎么我在MSDN上面搜不到CMFCMenu这个类的?
还有请问一下为什么窗口类不能捕获WM_RBUTTONDOWN消息的?原因是不是因为使用了BCG界面库的原因?
就好像在vc2008中调用GetMenu返回的是NULL一样,也是因为BCG机制?
---华软网友回复---
那是因为你的msdn没有装sp1,

msdn 有一个msdn for vs2008 sp1的。
---华软网友回复---
  class="deleted_message"> 该回复于2010-09-13 14:09:28被版主删除
---华软网友回复---
不会吧,我一直再用OnContextMenu啊,你怎么说不可以呢???这就奇怪了。。。
---华软网友回复---
我一直是用在线帮助文档的,没有下载过,嗯,我下载来看看。谢谢了。。。
至于11楼嘛,你确定你用的是vc2008的sp1?vc2008的sp1是不行的,至少我是不行的。。。
---华软网友回复---
我一直在用sp1 + vs2008/VC++哦
---华软网友回复---
OnContextMenu
---华软网友回复---
以上的方法可以啊~~~楼主重装下sp1 ???
---华软网友回复---
你们创建的程序是基于对话框的吧,我创建基于对话框的应用程序也是可以的在OnContextMenu中创建右键弹出菜单的,但是创建多个文档的应用程序时就不可以了。
---华软网友回复---
俺的是MDI架构。
引用 16 楼 ljegege 的回复:
你们创建的程序是基于对话框的吧,我创建基于对话框的应用程序也是可以的在OnContextMenu中创建右键弹出菜单的,但是创建多个文档的应用程序时就不可以了。

---华软网友回复---
我在其他的电脑运行也是不行的,应该是那个BCG界面库问题的,现在我没有装sp1,就可以了。不过界面没sp1
的漂亮。另外如果是sp1的MDI的话打开多个文档时是像浏览器一样的标签停靠的。不知道你的是不是。算了结贴了。谢谢大家乐。。。
---华软网友回复---
呵呵,第一次离楼主这么近,却还是2010年的。这两天碰到了和楼主一样的问题,就是在视图类void C×××View::OnRButtonUp(UINT nFlags, CPoint point)中设置好断点,但调试时却进不到这个函数,很是让人郁闷。今天经过询问得到了一个成功的解决办法,那就是把当前系统自动生成的这个函数给删掉,然后选中该视图类->选择属性->在属性栏中选中消息,找到WM_RBUTTONUP,选择添加即可。到底为何会出现楼主遇到的这种问题,我也不知道。有人知道的话,望指点一下啊。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。