背景:
在做项目是要实现这样的功能:当把鼠标放在picture控件的不同位置显示不同的提示信息。该picture控件是放在某个对话框上的,假设该对话框为A。该picture控件的属性NOTIFY设为TURE。在对话框A对应的类中添加提示控件类型成员变量m_tooltip;在该类中的OnInitDialog中把m_toolTip控件和picture控件关联起来。m_toolTip控件其它设置请参考网上相关文章。
出现的问题:
picture可以响应提示信息,但是不能根据鼠标位置的不同显示不同的提示信息。
解决方法:
1、从CStatic派生子类CMyStatic,在CMyStatic类中添加提示控件类型成员变量m_tooltip,重写虚函数PreSuclassWindow()和PreTranslateMessage()。
在PreSuclassWindow()中添加如下代码:
m_tooltip.Create(this);
m_tooltip.AddTool(this,_T("要提示的信息"));
m_tooltip.SetDelayTime(TTDT_INITIAL, 100);
m_tooltip.SetDelayTime(TTDT_AUTOPOP, 500);
m_tooltip.SetMaxTipWidth(200);
在PreTranslateMessage()中添加如下代码:
m_tooltip.RelayEvent(pMsg);
2、在CMyStatic类中添加OnMouseMove()函数,根据鼠标位置的设置不同的提示信息:
m_tooltip.UpdateTipText(_T("不同的提示信息"), this);
3、为picture控件添加CMyStatic类型的值变量,属性NOTIFY还是设置为TURE。