'窗体代码
Private Sub Form_Load()
HookMouse Me.hwnd
End Sub
Private Sub Form_Unload(Cancel As Integer)
UnHookMouse Me.hwnd
End Sub
'模块代码
'***********************************************************
'mMouseWheel
'鼠标滚轮的事件检测
'***********************************************************
Option Explicit
Private Declare Function CallWindowProc Lib "User32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_WNDPROC = -4
Private Const WM_MOUSEWHEEL = &H20A
Global lpPrevWndProcA As Long
Public bMouseFlag As Boolean '鼠标事件激活标志
Public Sub HookMouse(ByVal hwnd As Long)
lpPrevWndProcA = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub UnHookMouse(ByVal hwnd As Long)
SetWindowLong hwnd, GWL_WNDPROC, lpPrevWndProcA
End Sub
Private Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case uMsg
Case WM_MOUSEWHEEL '滚动
Dim wzDelta, wKeys As Integer
'wzDelta传递滚轮滚动的快慢,该值小于零表示滚轮向后滚动(朝用户方向),
'大于零表示滚轮向前滚动(朝显示器方向)
wzDelta = HIWORD(wParam)
'wKeys指出是否有CTRL=8、SHIFT=4、鼠标键(左=2、中=16、右=2、附加)按下,允许复合
wKeys = LOWORD(wParam)
'--------------------------------------------------
If wzDelta < 0 Then '朝用户方向
Form1.Cls
Form1.Print "朝用户方向滚"
Else '朝显示器方向
Form1.Cls
Form1.Print "朝显示器方向"
End If
'--------------------------------------------------
Case Else
WindowProc = CallWindowProc(lpPrevWndProcA, hw, uMsg, wParam, lParam)
End Select
End Function
Private Function HIWORD(LongIn As Long) As Integer
HIWORD = (LongIn And &HFFFF0000) \ &H10000 '取出32位值的高16位
End Function
Private Function LOWORD(LongIn As Long) As Integer
LOWORD = LongIn And &HFFFF& '取出32位值的低16位
End Function
分享到:
相关推荐
vb鼠标滚轮doc文档: vb鼠标事件.doc vb 捕获鼠标滚轮事件 怎么检测鼠标的滚轮事件!???? 在vb中,使窗体响应鼠标滚轮事件 VB 获得鼠标滚轮的事件 让VB 6.0 支持鼠标滚轮 让vb应用程序支持鼠标滚轮
VB6.0鼠标滚轮插件是一款专为Visual Basic 6.0开发环境设计的扩展工具,它使得在VB6.0中可以更好地利用鼠标的滚轮功能,提高程序员的编码效率。VB6.0是Microsoft公司推出的一款经典的可视化编程工具,尽管现在已经被...
在VB6(Visual Basic 6)编程环境中,开发者通常会遇到一些限制,比如原生的VB6编辑器并不支持鼠标滚轮操作。然而,通过使用特定的插件,我们可以为VB6添加这样的功能,使开发过程更加便捷。"VB6代码 编辑器支持鼠标...
在VB6(Visual Basic 6)环境中,虽然...通过这些方法,开发者可以在VB6中获得3D鼠标滚轮的支持,使得在开发过程中可以更方便地浏览代码或控制界面,提高开发效率。记得在项目中适当注释代码,以方便后续维护和理解。
在VB6及更早版本中,系统默认并不直接支持鼠标滚轮事件,因此开发者需要通过自定义代码来实现这一功能。本篇文章将详细讲解如何利用提供的源码在VB环境中实现鼠标滚轮的控制。 首先,我们要理解鼠标滚轮的工作原理...
总结来说,"VB6滚轮工具"是VB6开发环境中解决鼠标滚轮事件缺失的一个重要补丁,它允许开发者为他们的应用程序添加滚轮支持,提高用户体验。尽管VB6已经过时,但这样的工具仍然对那些维护旧有系统或继续使用VB6进行...
标题中的“VB开发的VB6.0 IDE扩展-鼠标滚轮.rar”指的是一个基于Visual Basic (VB)开发的扩展程序,专门针对VB6.0集成开发环境(IDE)进行了优化,实现了鼠标滚轮在代码区域的滚动功能。这通常是为了改善开发者在...
VB6鼠标滑轮插件的出现,源于VB6 IDE在处理鼠标滚轮事件上的不足。在早期版本的VB6 IDE中,开发者常常会遇到在代码编辑器中使用鼠标滚轮时无法获得预期流畅滚动效果的困扰。当项目代码量庞大时,这一问题尤为明显,...
- **鼠标滚轮事件**:在Windows系统中,当用户滚动鼠标滚轮时会触发一个特定的消息,即`WM_MOUSEWHEEL`消息。通过处理这个消息,我们可以实现自定义的行为。 #### 2. 添加鼠标滚轮支持 接下来,我们将详细介绍如何...
- **鼠标滚轮事件**:监听鼠标的滚轮事件。 ##### 画图 - **抓屏**:可以通过`Bitmap`类的静态方法`FromScreen`来实现。 - **画任意曲线**:可以通过`Graphics`对象的`DrawCurve`方法来实现。 - **用绘图创建一块...
放大通常通过缩放操作实现,可以使用鼠标滚轮或专门的放大按钮来完成。 3. **地图缩小**:与放大相反,它帮助用户获得更大的视图范围,查看更广阔的地理区域。同样可以通过缩放操作实现。 在VB.NET中,开发者可以...
描述中提到的“具有更好的焦点和鼠标滚轮管理”,意味着这个扩展可能添加了额外的功能,使得控件在获得焦点时(如用户点击或键盘导航至该控件)有更优化的交互体验。鼠标滚轮管理可能意味着用户现在可以通过滚轮来...
- 使用JSP内置对象`response`的方法`getOutputStream()`可以获得一个指向客户端的输出流,通过这个流可以向客户端发送文件数据,实现文件下载的功能。 ### 11. 宏操作的执行顺序 - 当执行包含多个操作的宏时,这些...
在MapX中响应滚轮放大缩小地图.txt 在两个ASP.NET页面之间传递值.txt 在如何利用SharpZipLib进行文件的压缩和解压缩.txt 怎样打开关闭CDROM.txt 怎样检测网络中的电脑是否有安装SQL2000.txt 怎样写一个存储...
修改高级表格支持库,解决在鼠标按下和抬起之间收到时钟周期事件的情况下,无法收到“被单击”事件的BUG。 3. 修改扩展界面支持库三,解决单击卷帘菜单后导致日期框不能弹出下拉窗口的BUG。 4. 修改XP风格支持库...