自己编程模拟 MouseEnter,MouseExit 事件

2016-02-19 14:56 5 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是自己编程模拟 MouseEnter,MouseExit 事件,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

  很多第三方的控件都提供的 MouseEnter 和 MouseExit 事件来补充 MouseMove 事件的不足(MouseMove 事件不能有效的捕获鼠标是否已在控件外),但是这些控件或要注册,或集合了其他实际没有什么作用控件,另外在程序中加入太多的控件也会影响程序的性能,利用 Windows 的 API 函数,我们可以在 MouseMove 中模拟 MouseEnter 和 MouseExit,虽然我提供的源代码中没有真正的这两个事件,但的确提供了这两个事件所具备的功能。好了!让我们实现吧。

  首先加载一个模块,在模块中声明以下两个 API 函数:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  

Public Declare Function SetCapture Lib "user32" _ (ByVal hwnd As Long) As LongPublic Declare Function ReleaseCapture Lib "user32" () As Long

  SetCapture 的功能是:设置鼠标捕获指定的窗口(Windows 每个控件都是一个窗口。比如桌面上显示的图标就是一个窗口,其实是两个,另一个显示描述这个图标的文本),系统将收到这个窗口所有的鼠标移动或击按的所有信息。

  ReleaseCapture 的功能是:取消捕获鼠标信息。

  Windows 系统就是一个消息系统,系统一直在等待用户的消息,并加一相应,但处理完一个消息后,系统有处以下一轮的等待。消息传递是 Windows 的核心。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  让我们在 Form1 中放置一个按钮或其他控件,但此控件必须具有窗口句柄(hWnd),比如 VB 提供的 Image 控件是一个次图形控件,没有窗口句柄,而 Picture,Command Button 等控件就有窗口句柄,我们就拿 Command Button 来作示范,在 Form1 上放置一个 Command Button,在 Command1_MouseMove()事件内加入以下代码:

  

Private Sub Command1_MouseMove(Button As Integer, _ Shift As Integer, X As Single, Y As Single) With Command1   '当鼠标在越出控件外  If Not ((X  0) Or (Y  0) Or _   (X  .Width) Or (Y  .Height)) Then      '鼠标指针在按钮外时,让其他控件也收到标事件   ReleaseCapture      '为了不让 MouseMove 事件反复触发   If .Caption  "outside" Then    .Caption = "outside"   End If     '鼠标指针在按钮上,捕获他但鼠标移出是我们将收到鼠标事件   SetCapture .hwnd  Else   .Caption = "inside"  End If End WithEnd Sub

来源:http://www.tulaoshi.com/n/20160219/1608383.html

延伸阅读
自Tulaoshi.com己在家DIY模拟百叶窗效果   我不断在寻找新的和有趣的方式来进行我的拍摄,这张照片从开始到结束只花了我20分钟,是非常简单的设备与拍摄。 下面的教程我将循序渐进的讲解如何拍摄出这在窗口照亮的一幕。 这张照片是在我的工作室利用日光拍摄,可以在几乎任何地方重新搭建。 我给出的例子是一个全脸的拍...
标签: Web开发
1、基本概念 JavaScript 是基于对象(object-based)的语言。这与Java不同,Java是面向对象的语言。而基于对象的基本特征,就是采用事件驱动(event-driven)。它是在用形界面的环境下,使得一切输入变化简单化。通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event Driver)。...
标签: Web开发
js鼠标事件大全2008年01月14日 星期一 08:54一般事件 事件 浏览器支持 描述 onClick IE3|N2|O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDblClick IE4|N4|O 鼠标双击事件 onMouseDown IE4|N4|O 鼠标上的按钮被按下了 onMouseUp IE4|N4|O 鼠标按下后,松开时激发的事件 onMouseOver IE3|N2|O3 当鼠标移动到某对象范围的上方时触发...
Java的AWT库允许你把用户界面建立在Java applet中。AWT库包含有所有的用于建立简单界面所需要的控制:按钮、编辑框、检查框等等。 import java.awt.*; import java.applet.*; public class AppletEvent extends Applet { int x, y ; Button b ; Color clr ; 在该applet构造函数中,代码初始化了变量x,y,clr,建立了一个新的...
标签: Web开发
Html代码 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"  html xmlns="http://www.w3.org/1999/xhtml" lang="zh" xml:lang="zh"  head  meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /  met...

经验教程

371

收藏

32
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部