注册 登录
编程论坛 VC++/MFC

CMainFrame::OnRButtonDown

hba24 发布于 2015-04-08 14:24, 1012 次点击
问题:有一个MDI程序,可以打开多文档,我在标签上右击鼠标,然后在CMAINFRAME的PRETRANSMESSAGE函数中可以截获到WM_RBUTTONDOWN消息,一路跟踪,一直到执行了translatemessage(),dispatchmessage(),这个时候按我的理解,这条消息已经被发到了CMAINFRAME窗口,但是我去一直不到CMAINFRAME的OnRButtonDown被调用?这是为什么呢?恳请各位大侠给指点一下!!!

我的环境是WIN7  64   VS2010

我的理解是:任何消息,只要PRETRANSLATEMESSAGE不拦截,都应该送得到本窗口,但是我发现,WM_RBUTTONDOWN,WM_RBUTTONUP都送不到CMAINFRAME窗口,但是如果在CVIEW窗口点击就没问题,都可以送到CVIEW窗口。

只有本站会员才能查看附件,请 登录

就是右键点击doc_name1那个标签位置。
4 回复
#2
天使梦魔2015-04-08 15:36
发送到窗口?窗口刷新也需要消息循环不停的更新,发送各种消息,而按键是消息循环中的一个,它们互不依赖。
#3
hba242015-04-08 16:13
回复 2楼 天使梦魔
就是CMAINFRAME这个窗口没有调用ONRBUTTONDONW函数。但是我明明看到消息已经被DISPATCH出去了的。
#4
hba242015-04-08 16:15
跟踪CMainFrame的OnWndMsg()函数看不到WM_RBUTTONDOWN消息。
#5
天使梦魔2015-04-08 16:23
它可能重载了吧。
1