Как добавить описание в динамически создаваемую подсказку CMFCToolbar? - PullRequest
0 голосов
/ 14 сентября 2018

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 с заголовком, появится только всплывающая подсказка вот так

Мне нужно добавить описание на эту панель инструментов и просмотреть его вот так , если кто-нибудь может предложить лучший способ сделать это

1 Ответ

0 голосов
/ 02 октября 2018

Любой, кто ищет ответ.Здесь вы просто добавляете

CTooltipManager::SetTooltipText((TOOLINFO*) pTTT, m_pToolTip, AFX_TOOLTIP_TYPE_TOOLBAR, strTip, strDescr); 

в свою переопределенную функцию onneedtiptext.

...