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