-1
我在codeproject中看到「Simple Tab Control For Visual C++」,並且此項目未處理其他窗體上的事件,我嘗試使用OnChildNotify修復它,但無法正常工作。 我該如何處理這個事件?(請修正代碼項目源代碼)如何處理具有多個子窗體的事件「選項卡控件」
謝謝。
我在codeproject中看到「Simple Tab Control For Visual C++」,並且此項目未處理其他窗體上的事件,我嘗試使用OnChildNotify修復它,但無法正常工作。 我該如何處理這個事件?(請修正代碼項目源代碼)如何處理具有多個子窗體的事件「選項卡控件」
謝謝。
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
可以有多個子窗口。
感謝快速回復,我嘗試OnChildNotify和ON_NOTIFY_REFLECT(與NM_CLICK,WM_BUTTONPRESSED,TCN_SELCHANGE等)在CodeProject上主類和子類的形式,但不起作用。只有TCN_SELCHANGE句柄選項卡已更改,但未處理選項卡控件中的其他對象。按鈕點擊,請參閱代碼項目src並修復它。 – user1833748
我需要一個多表單來簡化表單設計和處理事件,否則單一表單工作正確。 – user1833748
在主類中使用'ON_NOTIFY',它不需要其他任何東西。在子類中使用「OnChildNotify」或「ON_NOTIFY_REFLECT」。不要一次全部使用它們。 –