MFC下,首先创建一个继承自CToolbar的toolbar类,例如:CPlayerToolBar.
重载create, 启用tooltip, EnableToolTips(TRUE)。
重载OnToolHitTest.
INT_PTR CPlayerToolBar::OnToolHitTest( CPoint point,TOOLINFO* pTI ) const
{
if(!pTI){
return -1;
}
UINT ret = m_nItemToTrack;//m_pbtnList->OnHitTest(point,rc);
if(ret){
pTI->hwnd = m_hWnd;
pTI->uId = (UINT) (ret);
//pTI->uFlags = TTF_IDISHWND;
pTI->lpszText = LPSTR_TEXTCALLBACK;
RECT rcClient;
GetClientRect(&rcClient);
pTI->rect = rcClient;
return pTI->uId;
}
return -1;
};
该函数会模拟发送一个WM_NOTIFY消息,参数为TTN_NEEDTEXT。
处理该消息即可。