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

How to add description in dynamically created CMFCToolbar's ToolTip?

本文关键字:添加 描述 工具提示 CMFCToolbar 动态 创建      更新时间:2023-10-16

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;
}

以在 cmfc 工具栏按钮中显示工具提示。

cmfc工具栏按钮不带任何参数,也没有设置描述的功能。构造函数采用如下参数:

pToolBarButton = new CMFCToolBarButton(nId, nIconIndex, lpszText);

如果我仅使用标题设置参数lpszText,则工具提示如下所示

我需要向此工具栏添加描述并像这样查看它,如果有人可以提出更好的方法

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

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

到您覆盖的 onneedtiptext 函数。