MFC库中经常会使用到的一个控件是Tab标签页控件,这个控件在展现多个平级数据集非常合适。
与控件对应的,是MFC库中的两个类:CMFCTabCtrl和CMFCBaseTabCtrl,其中CMFCTabCtrl继承自CMFCBaseTabCtrl,而CMFCBaseTabCtrl又继承自CWnd。
开发应用程序过程中会有一个需求:Tab标签页何时进行了切换?
下面介绍两个消息
AFX_WM_CHANGING_ACTIVE_TAB
MSDN描述为:Sent to the parent of CMFCTabCtrl object. Process this message if you want to receive notifications from CMFCTabCtrl objects when a user resets a tab.
也即:收到该消息时,标签页还没有完成切换,只是准备切换。
该消息处理函数原型如下:
afx_msg LRESULT OnActiveTabChanging(WPARAM wParam, LPARAM lParam);
我们可以通过LPARAM获取当前的CMFCTabCtrl控件类,也可以通过WPARAM获取准备被激活的标签页索引。
AFX_WM_CHANGE_ACTIVE_TAB
MSDN描述为:The framework sends this message to the resizable control bar control. Process this message to receive notifications from CMFCTabCtrl objects when a user changes an active tab.
也即:收到该消息时,标签页已完成切换。
该消息处理函数原型如下:
afx_msg LRESULT OnActiveTabChanged(WPARAM wParam, LPARAM lParam);
我们可以通过LPARAM获取当前的CMFCTabCtrl控件类,也可以通过WPARAM获取已激活的标签页索引。
以下是通用处理代码
AFX_WM_CHANGING_ACTIVE_TAB处理函数:
AFX_WM_CHANGE_ACTIVE_TAB处理函数: