Tooltip for CToolBarctrl in a CDialog

MicrosoftShip 2010-05-19 12:58:18
RT, 我在自己的一个非模态对话框上像按钮那样放了一个CToolBarCtrl,但是不知道如何给这个CToolBarCtrl中的每个TOOL按钮添加tool tip.

按照MSDN的说法,对于父窗口是非CFrameWind类的,需要相应TTN_NEEDTEXT消息,我照做了。

问题是,网上所有的资料和代码都似乎没有考虑如何判断当前的TOOL是整个TOOLBAR中的哪一个?按照MSDN的说法这个时候相应TTD_NEEDTEXT的函数传入的NMHDR中的ID应该是这个TOOL所代表的命令ID?可我发现那个ID始终都是CTOOLBARCTRL本身的窗口句柄,难道真的要让我去通过几何算法去判断这是第几个?
...全文
139 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-06-09
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
schlafenhamster 2010-06-01
  • 打赏
  • 举报
回复
//
BOOL CHasToolBarDlg::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom;
char txt[256];
if (pNMHDR->code==TTN_NEEDTEXT)
{
if(pTTT->uFlags & TTF_IDISHWND)
{// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
}
if(nID)
{
sprintf(txt,"%d",nID);
pTTT->lpszText = txt;
return(TRUE);
}
}
return(FALSE);
}
schlafenhamster 2010-06-01
  • 打赏
  • 举报
回复
不派生也行关键是:
UINT nID =pNMHDR->idFrom;//这个不是窗口handle而是按钮的ID号
向立天 2010-06-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 microsoftship 的回复:]
引用 2 楼 xianglitian 的回复:
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖……
[/Quote]
已经收录了
回帖通知我会删除
希望你的问题能早日得到解决
schlafenhamster 2010-05-31
  • 打赏
  • 举报
回复
其实不难:
1》。派生一个CToolBar的类叫CMyToolBar。//产生时必须有 CBRS_TOOLTIPS
2》。把ON_NOTIFY_EX( TTN_NEEDTEXT, 0, memberFxn )等放到CMyToolBar中
3》。在OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )中;
UINT nID =pNMHDR->idFrom;//这个不是窗口handle而是按钮的ID号

MicrosoftShip 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xianglitian 的回复:]
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
[/Quote]

那请您帮我转到疑难版吧
zyq5945 2010-05-19
  • 打赏
  • 举报
回复
CToolBarCtrl::GetItemRect+PtInRect

15,978

社区成员

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

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