ダイアログ型のアプリケーションに無理やりツールバーを設置した場合、正攻法ではツールバー上でToolTipが表示されない。表示させる方法はMSDNをちょっと調べればと分かるけど、ちょっと深いところにあったのでここに書いておく。
BOOL CPssDlg::OnInitDialog() { ... EnableToolTips(); // ツールバー m_ToolBar.CreateEx(this,TBSTYLE_FLAT|TBSTYLE_TRANSPARENT, WS_CHILD|WS_VISIBLE|CBRS_TOOLTIPS|CBRS_ALIGN_TOP,CRect(0,0,0,0), IDR_MAIN_TOOLBAR );//TOOLBAR_ID ); m_ToolBar.LoadToolBar( IDR_MAIN_TOOLBAR ); m_ToolBar.SetWindowPos( NULL, 0, 0, rect.right-rect.left, 20, SWP_NOZORDER ); ... } BOOL CPssDlg::OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult) { // ツールチップを表示 TOOLTIPTEXT *pTTT = (TOOLTIPTEXT*)pNMHDR; UINT nID = pNMHDR->idFrom; if(pTTT->uFlags & TTF_IDISHWND) { nID = ::GetDlgCtrlID((HWND)nID); if(nID) { pTTT->lpszText = MAKEINTRESOURCE(nID); pTTT->hinst = AfxGetResourceHandle(); return(TRUE); } } else{ // nID がそのままコントロールIDである。 pTTT->lpszText = MAKEINTRESOURCE(nID); pTTT->hinst = AfxGetResourceHandle(); } return(FALSE); }
強調部分はネットで調べても分からなかった。横着せず自分で調べなきゃダメってことか…。