【发布时间】:2010-09-21 03:42:57
【问题描述】:
我有一个派生自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。是否需要一些额外的工作才能使其正常工作?
【问题讨论】:
标签: c++ mfc tooltip mfc-feature-pack