如何知道鼠标进入及离开一个视图?

简介: 如何知道鼠标进入及离开一个视图?

(一),新建一个单文档工程HtmlCtrl,视图类基于CFormView(其它视图也行)。

(二),在#include <afxwin.h>前,加一行代码#define   _WIN32_WINNT   0x0400

(三),在CHtmlCtrlView中增加一个成员变量:bool m_bMouseOver,并在构造函数中赋初值为false。

(四),手动增加WM_MOUSEMOVE和WM_MOUSELEAVE的响应函数。

//{{AFX_MSG(CCKeyEgView) 
 afx_msg void OnMouseMove(UINT nFlags, CPoint point);
 afx_msg   LRESULT   OnMouseLeave(WPARAM   wParam,   LPARAM   lParam);  
 //}}AFX_MSG
 //{{AFX_MSG_MAP(CCKeyEgView) 
 ON_WM_MOUSEMOVE()
 ON_MESSAGE(WM_MOUSELEAVE,   OnMouseLeave)
 //}}AFX_MSG_MAP
void CHtmlCtrlView::OnMouseMove(UINT nFlags, CPoint point)
{
 if(!m_bMouseOver)  
 {  
  TRACE(_T("Mouse   enter/n"));  
  m_bMouseOver   =   TRUE;  
  TRACKMOUSEEVENT   tme;  
  tme.cbSize   =   sizeof(tme);  
  tme.dwFlags   =   TME_HOVER   |   TME_LEAVE;  
  tme.hwndTrack   =   m_hWnd;  
  tme.dwHoverTime   =   HOVER_DEFAULT;  
  ::TrackMouseEvent(&tme);  
 } 
 CFormView::OnMouseMove(nFlags, point);
}
LRESULT   CHtmlCtrlView::OnMouseLeave(WPARAM   wParam,   LPARAM   lParam)  
{  
 TRACE(_T("Mouse   Leave!/n"));  
 m_bMouseOver   =   FALSE;  
 return   0;  
}
相关文章
Qml实用技巧:在可视元素之前半透明覆盖一个可视元素,阻止鼠标透(界面)传(防止点击到被遮挡的按钮)
Qml实用技巧:在可视元素之前半透明覆盖一个可视元素,阻止鼠标透(界面)传(防止点击到被遮挡的按钮)
Qml实用技巧:在可视元素之前半透明覆盖一个可视元素,阻止鼠标透(界面)传(防止点击到被遮挡的按钮)
|
3月前
|
JavaScript
使用Vue实现一个当鼠标悬浮时出现,鼠标离开时消失的双层菜单
这篇文章介绍了如何在Vue中实现一个鼠标悬浮时出现、鼠标离开时消失的双层菜单,并提供了详细的代码示例和运行效果展示。
442 0
使用Vue实现一个当鼠标悬浮时出现,鼠标离开时消失的双层菜单
|
3月前
|
图形学
小功能⭐️Unity Button按钮实现鼠标移入移出触发相应事件
小功能⭐️Unity Button按钮实现鼠标移入移出触发相应事件
|
6月前
|
UED
如何理解鼠标点击事件在程序中的处理
如何理解鼠标点击事件在程序中的处理
93 0
|
编解码
【PyAutoGUI操作指南】02 鼠标控制功能+获取当前坐标+鼠标事件+鼠标滚动查询
左上角的像素位于坐标0,0。如果屏幕分辨率为1920 x 1080,则右下角的像素将为1919,1079(因为坐标从0开始,而不是1)。
528 0
调用windowsAPI 写一个初始界面有左键点击事件
调用windowsAPI 写一个初始界面有左键点击事件
调用windowsAPI 写一个初始界面有左键点击事件
|
Java
swing中一些常见的鼠标事件(鼠标形状的改变、鼠标接近、按下(图标的切换)、鼠标接近、离开(字体颜色的改变)、鼠标拖拽等)还有系统托盘+对话框
swing中一些常见的鼠标事件(鼠标形状的改变、鼠标接近、按下(图标的切换)、鼠标接近、离开(字体颜色的改变)、鼠标拖拽等)还有系统托盘+对话框
482 0
swing中一些常见的鼠标事件(鼠标形状的改变、鼠标接近、按下(图标的切换)、鼠标接近、离开(字体颜色的改变)、鼠标拖拽等)还有系统托盘+对话框
|
C# Windows
C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法
你QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法:   要么重写需要弹出的窗体的事件: protected override CreateParams CreateParams     {     get     {         const ...
1209 0
|
C#
C#引用CefSharp并屏蔽鼠标右键和禁止拖动放置事件
原文:C#引用CefSharp并屏蔽鼠标右键和禁止拖动放置事件 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013564470/article/details/78339957 ...
4248 0