У меня есть собственный 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, но это все еще не отправляет сообщение родителю. Кроме того, я заметил, что когда я отправляю сообщение родителю, я попадаю в почти бесконечный цикл (по какой-то причине он прерывается после нескольких итераций).