CToolTipCtrl的ON_NOTIFY_EX无法响应

漂白猪 漂白猪 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
继承了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
...全文
评论 6
收藏 已收藏
分享
返回顶部
漂白猪
界面 15,976 成员 115,866 内容