继承了public CButton
class CTankControl : public CButton
自绘控件void CTankControl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{……}
int CTankControl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CButton::OnCreate(lpCreateStruct) == -1)
return -1; EnableToolTips();
m_ttcTips.Create(this, TTS_ALWAYSTIP);
m_ttcTips.Activate(TRUE);
m_ttcTips.AddTool(this, "Tank Control"); return 0;
}
BOOL CTankControl::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message== WM_LBUTTONDOWN ||
pMsg->message== WM_LBUTTONUP ||
pMsg->message== WM_MOUSEMOVE)
{
m_ttcTips.RelayEvent(pMsg);
} return CButton::PreTranslateMessage(pMsg);
}BOOL CTankControl::SetTipText(UINT nID, NMHDR *pTTTStruct, LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pTTTStruct;
UINT nForm = pTTTStruct->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{
nForm = ::GetDlgCtrlID((HWND)nForm);
if (nForm)
{
strcpy(pTTT->lpszText, "Test");
return TRUE;
}
} return FALSE;
}
界面总是显示“Tank Control”,鼠标点一下后,就啥都不显示了
打断点,可以进入m_ttcTips.RelayEvent(pMsg);
但是无法进入SetTipText