MFC程序中,鼠标响应事件为何要在VIEW类里面处理?
MFC程序中,鼠标响应事件为何要在VIEW类里面处理?我看过很多书籍,都是在视图类里面处理鼠标或者键盘的消息,这是为什么呢?其本质是什么?希望各位朋友能解答我的疑惑,谢谢...
MFC程序中,鼠标响应事件为何要在VIEW类里面处理?
我看过很多书籍,都是在视图类里面处理鼠标或者键盘的消息,
这是为什么呢?其本质是什么?
希望各位朋友能解答我的疑惑,谢谢。
还有一个问题:
void CMouseGetMsgView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
MessageBox(L"Right button down");
CView::OnRButtonDown(nFlags, point);
}
这里的CView::OnRButtonDown(nFlags, point);
有什么用,注释掉也没什么不正常呀? 展开
我看过很多书籍,都是在视图类里面处理鼠标或者键盘的消息,
这是为什么呢?其本质是什么?
希望各位朋友能解答我的疑惑,谢谢。
还有一个问题:
void CMouseGetMsgView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
MessageBox(L"Right button down");
CView::OnRButtonDown(nFlags, point);
}
这里的CView::OnRButtonDown(nFlags, point);
有什么用,注释掉也没什么不正常呀? 展开
1个回答
展开全部
1.你说的肯定是文档视图结构了。你想想,框架类(MainFrame)好比是墙,视图好比是一张墙纸,当你鼠标点击时,是贴在墙上的墙纸感觉到鼠标被点击。相当与消息被view拦截了。这个时候在MainFrame里处理是没办法响应的。
2.第二个问题:你注释的代码是CMouseGetMsgView类的父类CView的代码。它里面会做一些相应的鼠标处理。而默认情况下基类可能对鼠标按下没做什么事情,所以注释掉没关系。但如果父类做了相应处理,效果就会体现。比如你做的对话框中的处理确定按钮消息OnOK()函数,他也是调用了父类的CDialog的OnOK()方法,如果注释父类的方法将无法获取父类赋予该函数的那部分功能。
2.第二个问题:你注释的代码是CMouseGetMsgView类的父类CView的代码。它里面会做一些相应的鼠标处理。而默认情况下基类可能对鼠标按下没做什么事情,所以注释掉没关系。但如果父类做了相应处理,效果就会体现。比如你做的对话框中的处理确定按钮消息OnOK()函数,他也是调用了父类的CDialog的OnOK()方法,如果注释父类的方法将无法获取父类赋予该函数的那部分功能。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询