(MFC)当鼠标停在按钮等控件时出现文字提示功能

更新时间:2023-10-14 19:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

在VC中,也常常为一些图片按钮添加一些功能提示。 下面讲解实现过程:

该功能的实现主要是用CToolTipCtrl类。该类在msdn中有详细说明。

首先在对话框的头文件中定义:public:下,加入:CToolTipCtrl m_Mytip; 然后在初始化对话框函数中加入: m_Mytip.Create(this);

m_Mytip.AddTool( GetDlgItem(IDC_BUTTON), \你想要添加的提示信息\为你要添加提示信息的按钮的ID m_Mytip.SetDelayTime(200); //设置延迟 m_Mytip.SetTipTextColor( RGB(0,0,255) ); //设置提示文本的颜色 m_Mytip.SetTipBkColor( RGB(255,255,255)); //设置提示框的背景颜色 m_Mytip.Activate(TRUE); //设置是否启用提示

然后在类向导中添加PreTranslateMessage消息响应函数 BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if(pMsg->message==WM_MOUSEMOVE) m_Mytip.RelayEvent(pMsg); return CDialog::PreTranslateMessage(pMsg); }

上面代码中:

m_Mytip.RelayEvent(pMsg);

把一个鼠标的消息发送给m_Mytip来处理。 void RelayEvent ( LPMSG lpMsg ); lpMsg Pointer to a MSG structure that contains the message to relay. 一个包含要依赖的消息的消息结构体的指针。

tool tip 只处理下面的消息,这些消息是通过RelayEvent发送给他的: WM_LBUTTONDOWN WM_MOUSEMOVE WM_LBUTTONUP WM_RBUTTONDOWN WM_MBUTTONDOWN WM_RBUTTONUP WM_MBUTTONUP

注:如果要为多个按钮添加功能提示只需在

m_Mytip.AddTool( GetDlgItem(IDC_BUTTON), \你想要添加的提示信息\的下面再加上类似语句,如

m_Mytip.AddTool( GetDlgItem(IDC_BUTTON1), \你想要添加的提示信息1\m_Mytip.AddTool( GetDlgItem(IDC_BUTTON2), \你想要添加的提示信息2\...

本文来源:https://www.bwwdw.com/article/61jf.html

Top