CToolTipCtrl的ON_NOTIFY_EX无法响应

漂白猪 2010-10-19 09:05:55
继承了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
...全文
377 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-11-14
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
Eleven 2010-10-19
  • 打赏
  • 举报
回复
SetTipText是哪个消息的响应函数?
漂白猪 2010-10-19
  • 打赏
  • 举报
回复
我通过其他途径解决了,不过那个消息不知道为何,还是无法响应?
漂白猪 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xianglitian 的回复:]
没见你调用SetTipText啊
[/Quote]

这个没有关系的,只要他响应了那个消息,就可以了
向立天 2010-10-19
  • 打赏
  • 举报
回复
没见你调用SetTipText啊
ynwlgh 2010-10-19
  • 打赏
  • 举报
回复
lpszText 指向工具的文本的指针。如果这个参数包含的值是LPSTR_TEXTCALLBACK,则TTN_NEEDTEXT通知消息被发送给pWnd指向的窗口的父窗口。

父窗口里面.

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧