(ページを自動的に変更するために) カスタマイズしようとしているカスタム CTabCtrl があります。
ON_NOTIFY_REFLECT(TCN_SELCHANGE, ...)
タブ コントロールで処理するとON_NOTIFY(TCN_SELCHANGE, ...)
、親クラスに受け取られません。
子クラスと親クラスで両方の通知メッセージを受信するにはどうすればよいですか?
現在、WM_NOTIFY メッセージを親クラスに手動で送信する「回避策」を使用しています。
void CMyTabControl::OnSelChange(NMHDR *pHeader, LRESULT *pResult)
{
const int index = this->GetCurSel();
this->ShowTab(index);
const CWnd *const pParent = this->GetParent();
if (pParent != NULL)
{
*pResult = pParent->SendMessage(WM_NOTIFY, TCN_SELCHANGE,
reinterpret_cast<LPARAM>(pHeader));
}
}
編集: *pResult = 0 と *pResult = 1 の両方を試しましたが、それでもメッセージは親に送信されません。また、メッセージを親に送信すると、ほぼ無限ループになってしまうことに気付きました (何らかの理由で、数回繰り返した後に発生します)。