MFC 提示框随鼠标移动动态响应

为鼠标添加动态的提示框。

当鼠标在图片控件的图像区域中移动时,动态跟新鼠标移动过程中图像的像素。

1. 新建对话框项目

![]( https://img-blog.csdnimg.cn/20200922164321851.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDk4MjYx,size_16,color_FFFFFF,t_70#pic_center)
![]( https://img-blog.csdnimg.cn/20200922164350535.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDk4MjYx,size_16,color_FFFFFF,t_70#pic_center)![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200922164416276.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDk4MjYx,size_16,color_FFFFFF,t_70#pic_center)![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200922164434530.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDk4MjYx,size_16,color_FFFFFF,t_70#pic_center)![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200922164457210.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDk4MjYx,size_16,color_FFFFFF,t_70#pic_center)

2. 添加一个CToolTipCtrl变量

在对话框头文件ADDToolTipDlg.h中添加一个相应的CToolTipCtrl类型的变量:

CToolTipCtrl m_toolTipCtrl;

3. 在对话框OnInitDialog()中加载提示框

在ADDToolTipDlg.cpp的OnInitDialog()中添加:

/*提示框*/
	m_toolTipCtrl.Create(this);
	m_toolTipCtrl.AddTool(this, _T(""));
	m_toolTipCtrl.SetDelayTime(0);
	m_toolTipCtrl.Activate(true);

4. 重写对话框的PreTranslateMessage消息

![]( https://img-blog.csdnimg.cn/2020092216504442.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDk4MjYx,size_16,color_FFFFFF,t_70#pic_center)![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200922165144163.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDk4MjYx,size_16,color_FFFFFF,t_70#pic_center)
添加代码:

BOOL CADDToolTipDlg::PreTranslateMessage(MSG* pMsg)
{
	// TODO: 在此添加专用代码和/或调用基类
	m_toolTipCtrl.RelayEvent(pMsg);
	return CDialogEx::PreTranslateMessage(pMsg);
}

5. 添加鼠标移动响应函数

![]( https://img-blog.csdnimg.cn/20200922165519265.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDk4MjYx,size_16,color_FFFFFF,t_70#pic_center)![]( https://img-blog.csdnimg.cn/20200922165609925.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNDk4MjYx,size_16,color_FFFFFF,t_70#pic_center)

void CADDToolTipDlg::OnMouseMove(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	CString str;
	str.Format(_T("[%d ,%d] "),point.x, point.y);
	m_toolTipCtrl.UpdateTipText(str, this);
	CDialogEx::OnMouseMove(nFlags, point);
}


源码:ADDToolTip.rar

posted @ 2020-09-29 11:18  WaitFoF❤  阅读(393)  评论(0)    收藏  举报