我有一个派生自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
。是否需要一些额外的工作才能使其正常工作?