想要个性化控件,必须重载控件.刚才试验了一下网上的一个ToolTip方法,记录一下.
环境为MFC工程.
添加一个类的成员变量
CToolTipCtrl m_ToolTip;
公开或者私有都无所谓,个人建议为私有成员变量.
在类的构造函数里添加
if (m_ToolTip.GetSafeHwnd() == NULL) m_ToolTip.Create(this);
m_ToolTip.AddTool(this);
重载类的PreTranslateMessage函数,添加一句
m_ToolTip.RelayEvent(pMsg);
这样就做好了,至于鼠标停留后提示什么文字
方法一:
可以通过m_ToolTip的UpdateTipText函数设置,比如这样
m_ToolTip.UpdateTipText("提示??????", this);
注意,这里的this是指的自定义类的指针,如果在该类之外调用,不可使用this.
方法二:
给这个类添加一个自定义公开函数,调用之,比如这样
//类的头文件(.h)中添加
public:
void SetTipText(LPCTSTR pText);
//类的cpp文件中添加
void 类名::SetTipText(LPCTSTR pText)
{
m_ToolTip.UpdateTipText(pText, this);
}
到此控件的ToolTip添加完成.