CMFCToolBar提示信息

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章