为什么已经说了啊~~
CMainFrame(自动生成的)是CFrameWnd的子类, 而CFrameWnd又是CWnd的子类, 在CFrameWnd中没有关于鼠标的任何消息函数定义(你可以自己查), 而在CWnd中的鼠标消息函数都是定义成为保护类型的, 所以CMainFrame不能够响应鼠标消息; 而View是直接继承的CWnd, 当然就能够捕获消息了
难道不明白吗?
CMainFrame(自动生成的)是CFrameWnd的子类, 而CFrameWnd又是CWnd的子类, 在CFrameWnd中没有关于鼠标的任何消息函数定义(你可以自己查), 而在CWnd中的鼠标消息函数都是定义成为保护类型的, 所以CMainFrame不能够响应鼠标消息; 而View是直接继承的CWnd, 当然就能够捕获消息了
难道不明白吗?
解决方案 »
- 请问rst.Open(sSQL,adCmdText);中的adCmdText是什么意思??
- 想做个单机版的qq农场 大家给点思路 谢谢
- VC6.0用GDI+绘制图标问题,不透明的?
- 有关对话框以及其控件的问题
- 如何实现数据库放在第三方机器上
- 请问大家,MYIE中的“鼠标手势”的实现原理是什么?100分想送。
- 我想用vc++模拟一个线程池,应该怎么做?
- 如何做一个窗口,在其他窗口最大化时不占据它的位置?就像Windows的任务栏窗口。
- 简单但对我很难的问题:(
- 关于字符串按段截取的函数,请高手指导如何优化以提高性能!
- 侯杰说MS提供了DefWindowProc的原程序,可我在SDK上找不到,请帮忙
- 问一个很菜的问题:http于socket有何区别于联系???
View覆盖了.
不信你点点非客户区,如标题栏,肯定能响应的.所以你要捕捉鼠标消息,应该到CView中去捕捉.
要么你把视缩小,也能在CMainFrame捕捉到这消息的.
zx_sanjin(1.5kg, 不赊账~~~) 说的很对。
shesh(无所谓) 说错了。
如果要验证的话,还可以创建一个多文档,把视图最小化后,照样是不能相应OnLButtonDown()消息的。
添如下面代码:
if(pMsg->message == WM_RBUTTONDOWN)
{
AfxMessageBox("aa");;
}
试试看`~~
然后在CMainFrame::OnCreate()中m_hMDIClient.SubClassWindow(m_hWndMDIClient);
这样就可以了。