У меня есть класс, производный от CTreeCtrl
. В OnCreate()
я заменяю объект CToolTipCtrl
по умолчанию на пользовательский:
int CMyTreeCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CTreeCtrl::OnCreate(lpCreateStruct) == -1)
return -1;
// Replace tool tip with our own which will
// ask us for the text to display with a TTN_NEEDTEXT message
CTooltipManager::CreateToolTip(m_pToolTip, this, AFX_TOOLTIP_TYPE_DEFAULT);
m_pToolTip->AddTool(this, LPSTR_TEXTCALLBACK);
SetToolTips(m_pToolTip);
// Update: Added these two lines, which don't help either
m_pToolTip->Activate(TRUE);
EnableToolTips(TRUE);
return 0;
}
Мой обработчик сообщений выглядит так:
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &CMyTreeCtrl::OnTtnNeedText)
Однако я никогда не получаю сообщение TTN_NEEDTEXT
. Я посмотрел с помощью Spy++, и похоже, что это сообщение никогда не отправляется.
В чем здесь может быть проблема?
Обновлять
Я не уверен, имеет ли это значение: родительское окно CTreeCtrl
имеет тип CDockablePane
. Может ли быть какая-то дополнительная работа, необходимая для этого, чтобы работать?