如何在动态创建的CMFCToolbar的工具提示中添加描述?

时间:2018-09-14 12:49:19

标签: c++ mfc cmfctoolbar

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设置为title,则只会显示工具提示like this

我需要在此工具栏中添加说明,并like this进行查看,如果有人可以提出更好的方法

1 个答案:

答案 0 :(得分:0)

任何人在寻找答案。在这里,您只需添加

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

您覆盖的onneedtiptext函数。