2015-11-28 61 views

回答

0

OnChildNotify在繼承選項卡控件時非常有用。您也可以使用ON_NOTIFY_REFLECT作爲子類(使用一個或另一個)。

舉個簡單的例子,你不需要上面的codeproject例子,你可以使用CTabCtrl。你也可以通過添加ON_NOTIFY到消息映射處理從父窗口的消息:

BEGIN_MESSAGE_MAP(CMyDialog, CDialogEx) 
    ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnTabSelChange) 
END_MESSAGE_MAP() 

void CMyDialog::OnTabSelChange(NMHDR*, LRESULT*) 
{ 
    //user changed tab index 
    //new index = Tab.GetCurSel() 
} 

在這個例子中,CMyDialog可以有多個子窗口。

又見Tab Control Notifications

+0

感謝快速回復,我嘗試OnChildNotify和ON_NOTIFY_REFLECT(與NM_CLICK,WM_BUTTONPRESSED,TCN_SELCHANGE等)在CodeProject上主類和子類的形式,但不起作用。只有TCN_SELCHANGE句柄選項卡已更改,但未處理選項卡控件中的其他對象。按鈕點擊,請參閱代碼項目src並修復它。 – user1833748

+0

我需要一個多表單來簡化表單設計和處理事件,否則單一表單工作正確。 – user1833748

+0

在主類中使用'ON_NOTIFY',它不需要其他任何東西。在子類中使用「OnChildNotify」或「ON_NOTIFY_REFLECT」。不要一次全部使用它們。 –

相關問題