📄 怎样捕捉控件的mouse in和mouse leave事件.txt
字号:
没 有 这 样 的 事 件 。 只 要 鼠 标 进 入 控 件 就 产 生 MouseMove事 件 , 你 可 以 用 第 一 次 触 发 MouseMove事 件 来 代 替 MouseIn事 件 。 至 于 MouseLeave事 件 就 麻 烦 , 你 可 以 利 用 Form的 MouseMove事 件 来 代 替 控 件 的 MouseLeave事 件 。
如 果 控 件 具 有 hWnd属 性 (Label没 有 这 个 属 性 , 但 CommandButtun有 ), 也 可 以 调 用 SetCapture和 ReleaseCapture这 两 个 Windows API函
数 的 方 法 来 实 现 它 。 具 体 步 骤 如 下 :
1) 在 VB中 新 建 一 个 标 准 EXE工 程 ;
2) 画 出 一 个 按 钮 Command1;
3) 在 窗 体 Form1中 定 义 Windows API的 声 明 ;
Private Declare Function SetCapture Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
4) 在 Command1的 MouseMove事 件 中 编 写 以 下 代 码 :
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim MouseEnter As Boolean '鼠 标 进 入 的 标 志 位
MouseEnter = (0 <= X) And (X <= Command1.Width) And (0 <= Y) And (Y <=
Command1.Height) '计 算 鼠 标 的 移 动 是 否 在 Command1里 面
If MouseEnter Then '鼠 标 已 经 进 入
Me.Caption = "Mouse In Button!"
SetCapture Command1.hWnd
Else '鼠 标 已 经 离 开
Me.Caption = "Mouse Out!"
ReleaseCapture
End If
End Sub
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -