转自:http://zhidao.baidu.com/question/167739281.html
MFC框架中生成的消息响应函数为什么最后都要调一下父类CView类的同名消息响应函数
void CDrawTestView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 HDC hdc; hdc=::GetDC(m_hWnd); MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL); LineTo(hdc,point.x,point.y); ::ReleaseDC(m_hWnd,hdc); CView::OnLButtonUp(nFlags, point); } 不调用也能完成的,我想知道为什么?
最佳答案
首先明白这个概念,你的CDrawTestView类继承自父类CView,你重载了基类的函数OnLButtonUp(UINT nFlags, CPoint point),如果你不重载,当程序要用到这个函数时就会默认自动调用CView::OnLButtonUp(nFlags, point)。 你重载后加了一部分操作,但CView::OnLButtonUp(nFlags, point)里面封装了很多的操作,你把父类的函数写在里面,当需要时还可以用到其他操作。 不调用也能完成,是你还没碰到特殊的情况。