CView::OnMouseMove()在该段中的作用??

srbycc 2010-01-14 04:30:44
void CDrawLineView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
if(startpt.x != -1)
{
dc.MoveTo(startpt.x, startpt.y); // 移动到给定的开始点
dc.LineTo(point);
startpt = point;
}
CView::OnMouseMove(nFlags, point);
}

在每个用到鼠标事件的消息处理函数中,其最后都要用到cview中的CView::OnMouseMove(nFlags, point);

请问该语句的作用是??系统做了什么工作呢 ?

P.s.:该段代码是画线程序中的一小段 `
...全文
194 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
TANG_XIAO_BIN 2010-02-15
  • 打赏
  • 举报
回复
如果你不重载的话,系统就默认调用他,相当于是一个接口!
如果你自己处理了消息,就可以不调用了!
srbycc 2010-01-15
  • 打赏
  • 举报
回复
我把"CView::OnMouseMove(nFlags, point); "等鼠标处理函数再次调用的语句注释掉,编译运行,功能正常!!!


srbycc 2010-01-15
  • 打赏
  • 举报
回复
谢谢大家的回答!!


[Quote=引用 5 楼 zhucde 的回复:]
CDrawLineView  的基类是CView,

重载的MouseMove执行完了后, 通知父类也执行同样的操作.

我理解, 应该MFC中, 很多东西"有可能"在基类的方法中实现了, 如果重载后, 可能会造成父类的一些操作没有执行,

而在重载的函数中, 再调用一次父类的方法 , 确保父类中的方法都被执行.
[/Quote]

请问,各位老师,
能确定一下调用MouseMove的方法是"再调用一次父类的方法 , 确保父类中的方法都被执行"这个原因吗?
zhucde 2010-01-14
  • 打赏
  • 举报
回复
CDrawLineView 的基类是CView,

重载的MouseMove执行完了后, 通知父类也执行同样的操作.

我理解, 应该MFC中, 很多东西"有可能"在基类的方法中实现了, 如果重载后, 可能会造成父类的一些操作没有执行,

而在重载的函数中, 再调用一次父类的方法 , 确保父类中的方法都被执行.
luhongyu2108 2010-01-14
  • 打赏
  • 举报
回复
系统通过宏ON_WM_MOUSEMOVE()将CView::OnMouseMove(nFlags, point)和鼠标移动消息联系起来
bragi523 2010-01-14
  • 打赏
  • 举报
回复
默认的movesmove处理啊
快乐鹦鹉 2010-01-14
  • 打赏
  • 举报
回复
调用基类的鼠标处理。你可以跟踪进去看看干了什么。一般是不用关心的。
luhongyu2108 2010-01-14
  • 打赏
  • 举报
回复
该语句的作用是相应鼠标移动消息

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧