MFC 属性表单的问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 03:32:08
问题就是
www&vckbase&com/code/downcode&asp?id=1589
(受累将上边的&换为.)
这里面的方案5中,有这样一句
void CTabSheet::OnLButtonDown(UINT nFlags, CPoint point)
{
CTabCtrl::OnLButtonDown(nFlags, point);

//判断是否单击了其他标签
if(m_nCurrentPage != GetCurFocus())
{
//将原先的子对话框隐藏
m_pPages[m_nCurrentPage]->ShowWindow(SW_HIDE);
m_nCurrentPage=GetCurFocus();
//显示当前标签所对应的子对话框
m_pPages[m_nCurrentPage]->ShowWindow(SW_SHOW);
}

}
我的问题就是这里面的CTabCtrl::OnLButtonDown(nFlags, point);用意何在?为何我去掉后就会出现不能选择的问题。
谢谢,而且我在CTabCtrl并看不到有这样一个静态函数啊~~~msdn没写啊~~

CTabCtrl::OnLButtonDown(nFlags, point);这个不是静态函数,只是在CTabCtrl的子类CTabSheet中直接调用了它的父类的OnLButtonDown。这个函数是响应鼠标左键单击的一个消息处理函数,MSDN不可能把所有的消息处理函数都列在每一个MFC类的成员函数列表里的。这个函数名字楼主以前没碰到过?
必须要调用CTabCtrl::OnLButtonDown(nFlags, point);因为标签控件被单击后产生的默认行为是把被单击的标签显示在最前面。这个显示动作所包含的代码在CTabCtrl::OnLButtonDown(nFlags, point);里面,所以必须调用。才会使标签产生我们平常看到的视觉效果。