这个问题与这个有关。
在 CDockablePane 派生类中,我有一个 CTreeCtrl 成员,我在 OnCreate() 中为其添加了 ToolTip:
int CMyPane::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDockablePane::OnCreate(lpCreateStruct) == -1)
return -1;
const DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |
TVS_CHECKBOXES | TVS_DISABLEDRAGDROP | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
TVS_INFOTIP | TVS_NOHSCROLL | TVS_SHOWSELALWAYS;
if(!m_tree.Create(dwStyle, m_treeRect, this, TREECTRL_ID) ) { return -1; }
m_pToolTip->AddTool(&m_tree, LPSTR_TEXTCALLBACK, &m_treeRect, TREECTRL_ID);
m_tree.SetToolTips(m_pToolTip);
return 0;
}
我必须使用所有可选参数调用 AddTool(),因为默认值不适用于 CDockablePane。
m_treeRect
是 CTor 中的CRect
成员集(0, 0, 10000, 10000)
。这真的很丑。
m_tree
每当的大小发生变化时,我想调整工具的矩形。
所以我尝试了一些东西,CMyPane::OnSize()
但都没有奏效:
- 调用
m_pToolTip->GetToolInfo()
然后修改CToolInfo
的 rect 成员,然后调用SetToolInfo()
- 打电话
m_pToolTip->SetToolRect()
它是如何完成的?