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