CMFCToolbar наследует функцию EnableToolTip, которая не помогает разработчику, если он динамически создает панель инструментов и не добавляет описание и заголовок в ресурс.
Я сделал расширение для CMFCToolBar и написал функцию:
BOOL CMFCToolBarEx::OnNeedTipText(UINT /*id*/, NMHDR* pNMH, LRESULT* /*pResult*/)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMH;
// UINT nID = static_cast<int>(pNMH->idFrom);
CString strTip = _T("");
CPoint point;
::GetCursorPos(&point);
ScreenToClient(&point);
INT_PTR nHit = ((CMFCToolBar*)this)->HitTest(point);
if(nHit == -1)
return FALSE;
CMFCToolBarButton* pButton = GetButton((int)nHit);
strTip = pButton->m_strText;
_tcscpy(pTTT->lpszText , strTip.GetBuffer(0));
return TRUE;
}
показать подсказку в кнопке cmfctoolbar.
Кнопка cmfctoolbar не принимает параметров и не имеет функции для установки описания. Конструктор принимает параметр как:
pToolBarButton = new CMFCToolBarButton(nId, nIconIndex, lpszText);
Если я установлю параметр lpszText с заголовком, появится только подсказка как это
Мне нужно добавить описание на эту панель инструментов и просмотреть его как это если кто-нибудь может предложить лучший способ сделать это
Тот, кто ищет ответ. Вот иди просто добавь
CTooltipManager::SetTooltipText((TOOLINFO*) pTTT, m_pToolTip, AFX_TOOLTIP_TYPE_TOOLBAR, strTip, strDescr);
к вашей переопределенной функции onneedtiptext.
Других решений пока нет …