CMFCToolBar提示信息

来源:互联网 发布:卡五星房卡麻将源码 编辑:程序博客网 时间:2024/05/17 03:51

Visual Studio 2008 中的MFC已经集成了BCG GUI库的很多功能,可以很容易的建立VS2005或者Office2007风格的界面。

今天写了一个测试程序,发现默认的CMFCToolBar没有tooltips。找了一些资料,解决如下:

在Toolbar所属的View中添加消息 :

    ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnNeedTipText)

在消息响应函数中加入代码:

BOOL CClassView::OnNeedTipText(UINT id, NMHDR* pNMHDR, LRESULT* pResult)
{
    UINT_PTR nID = pNMHDR->idFrom - 1;
    CMFCToolBarButton *pBtn = m_wndToolBar.GetButton(nID);

    if (pBtn)
    {
        TCHAR szBuff[64];
        ::LoadString(AfxGetResourceHandle(), pBtn->m_nID, szBuff, sizeof(szBuff) / sizeof(TCHAR));

        TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
        pTTT->lpszText = szBuff;
        pTTT->hinst = AfxGetResourceHandle();
    }

    return TRUE;
}