mfc实现只要鼠标进入对话框中的一个区域就出现tooltip的提示信息,当鼠标离开时提示信息马上消失?急..
显示提示信息的那个窗口下有很多按钮或其他的控件!我的窗口句柄是HWNDhwnd;代码实现最好是当鼠标在区域内移动超过30时提示信息重新在鼠标处显示!高手们,帮帮忙!急啊!...
显示提示信息的那个窗口下有很多按钮或其他的控件!我的窗口句柄是HWND hwnd;代码实现
最好是当鼠标在区域内移动超过30时提示信息重新在鼠标处显示!高手们,帮帮忙!急啊! 展开
最好是当鼠标在区域内移动超过30时提示信息重新在鼠标处显示!高手们,帮帮忙!急啊! 展开
1个回答
展开全部
假设在CDlg**中有一控件IDC_EDIT_A,想要鼠标指向该控件时提示,步骤如下:
1、CDlg**头文件中声明成员变量
CToolTipCtrl m_tooltip;
2、CDlg***::OnInitDialog() 中创建并设置参数
m_tooltip.Create(this);
//CToolTipCtrl与控件关联
m_tooltip.AddTool(GetDlgItem(IDC_EDIT_A), TTS_ALWAYSTIP);//当鼠标指向IDC_EDIT_A控件显示提示
//若如是句柄可以用FromHandle(hwnd)替换 GetDlgItem(IDC_EDIT_A)
//文字颜色
m_tooltip.SetTipTextColor(RGB(0,0,255));
//鼠标指向多久后显示提示,毫秒
m_tooltip.SetDelayTime(TTDT_INITIAL, 10);
//鼠标保持指向,提示显示多久,毫秒
m_tooltip.SetDelayTime(TTDT_AUTOPOP, 30000);
//设定显示宽度,超长内容自动换行
m_tooltip.SetMaxTipWidth(200);
3、重写PreTranslateMessage,增加以下内容:
if(m_tooltip.m_hWnd!=NULL)
{
m_tooltip.RelayEvent(pMsg);
}
4、在需要的地方动态更新tip内容
m_tooltip.UpdateTipText(str, FromHandle(hwnd));
1、CDlg**头文件中声明成员变量
CToolTipCtrl m_tooltip;
2、CDlg***::OnInitDialog() 中创建并设置参数
m_tooltip.Create(this);
//CToolTipCtrl与控件关联
m_tooltip.AddTool(GetDlgItem(IDC_EDIT_A), TTS_ALWAYSTIP);//当鼠标指向IDC_EDIT_A控件显示提示
//若如是句柄可以用FromHandle(hwnd)替换 GetDlgItem(IDC_EDIT_A)
//文字颜色
m_tooltip.SetTipTextColor(RGB(0,0,255));
//鼠标指向多久后显示提示,毫秒
m_tooltip.SetDelayTime(TTDT_INITIAL, 10);
//鼠标保持指向,提示显示多久,毫秒
m_tooltip.SetDelayTime(TTDT_AUTOPOP, 30000);
//设定显示宽度,超长内容自动换行
m_tooltip.SetMaxTipWidth(200);
3、重写PreTranslateMessage,增加以下内容:
if(m_tooltip.m_hWnd!=NULL)
{
m_tooltip.RelayEvent(pMsg);
}
4、在需要的地方动态更新tip内容
m_tooltip.UpdateTipText(str, FromHandle(hwnd));
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询