为什么MFC中有些函数要加一句调用自身的代码?

时间:2021-01-17 02:40:50
我在看教科书时有一句代码不明白,是要实现在窗口内右击鼠标可以传递当前坐标,并且显示到左上角,其中接收鼠标右击的函数代码如下: 

void CMyView::OnLButtonDown(UINT nFlags, CPoint point)  

// TODO: Add your message handler code here and/or call default 
CMyDoc*pDoc=GetDocument(); 
ASSERT_VALID(pDoc); 
pDoc->m_pointMouse=point; 
Invalidate(); 

CView::OnLButtonDown(nFlags,point);//就是这一句不明白,默认自带的。

其中的最后一句不知道为什么要再调用自身呢,我把它注释起来后运行结果还是一样的。
而且我发现MFC中有很多函数都加了一句调用他自身的语句。我用的是VC++6.0

请指点一下,谢谢! 

5 个解决方案

#1


那不是调用自己 是调用基类的实现 你可以跟踪去看看

#2


楼上正解!当然你也可以不用调用基类的函数,像在这里它只是为了确定原点坐标,没有必要调用基类的LbuttonDown,你可以把它注释起来,没有影响的。

#3


最后这一行是MFC自动添加上去的。

#4


你的先了解一下继承、派生。
再你的这个程序中可以注释掉他,但有些地方是不能的。

#5


如果有些响应你在子类中没实现,调用基类就直接执行基类对响应的实现

#1


那不是调用自己 是调用基类的实现 你可以跟踪去看看

#2


楼上正解!当然你也可以不用调用基类的函数,像在这里它只是为了确定原点坐标,没有必要调用基类的LbuttonDown,你可以把它注释起来,没有影响的。

#3


最后这一行是MFC自动添加上去的。

#4


你的先了解一下继承、派生。
再你的这个程序中可以注释掉他,但有些地方是不能的。

#5


如果有些响应你在子类中没实现,调用基类就直接执行基类对响应的实现