Этот вопрос связан с этим .
В производном классе CDockablePane у меня есть член CTreeCtrl, для которого я добавляю всплывающую подсказку в OnCreate ():
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
- это CRect
элемент, установленный в (0, 0, 10000, 10000)
в CTor. Это действительно безобразно.
Я хотел бы настроить прямоугольник инструмента всякий раз, когда изменяется размер m_tree
.
Поэтому я попробовал кое-что в CMyPane::OnSize()
, но ничего из этого не сработало:
- Вызов
m_pToolTip->GetToolInfo()
, затем изменение прямоугольного члена CToolInfo
, затем вызов SetToolInfo()
- Звонок
m_pToolTip->SetToolRect()
Как это должно быть сделано?