1

(ページを自動的に変更するために) カスタマイズしようとしているカスタム 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 の両方を試しましたが、それでもメッセージは親に送信されません。また、メッセージを親に送信すると、ほぼ無限ループになってしまうことに気付きました (何らかの理由で、数回繰り返した後に発生します)。

4

1 に答える 1