VB鼠标滚轴控制滚动条
来源:互联网 发布:父母装修房子哭了知乎 编辑:程序博客网 时间:2024/04/27 01:54
添加一个窗体
在窗体上添加一个垂直滚动条
名字就默认即可
然后粘贴如下代码:
Private Sub Form_Load()
OldProcAddr = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf MyWinProc)
End Sub
然后添加一个模块
粘贴如下代码:
Public Const GWL_WNDPROC = (-4)
Public Const WM_MOUSEWHEEL = &H20A
Public OldProcAddr As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public 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
Public Function MyWinProc(ByVal hwnd As Long, ByVal msg As Long, ByVal wp As Long, ByVal lp As Long) As Long
If msg <> WM_MOUSEWHEEL Then
MyWinProc = CallWindowProc(OldProcAddr, hwnd, msg, wp, lp)
Else
Debug.Print msg
Dim s As String
s = Hex(wp)
If Len(s) < 8 Then s = String(8 - Len(s), "0") & s
Dim zDelta As Long
zDelta = CInt("&h" & Left(s, 4)) * (-1)
If Form1.VScroll1.Value + zDelta < Form1.VScroll1.Min Then
Form1.VScroll1.Value = Form1.VScroll1.Min
ElseIf Form1.VScroll1.Value + zDelta > Form1.VScroll1.Max Then
Form1.VScroll1.Value = Form1.VScroll1.Max
Else
Form1.VScroll1.Value = Form1.VScroll1.Value + zDelta
End If
End If
End Function
在窗体上添加一个垂直滚动条
名字就默认即可
然后粘贴如下代码:
Private Sub Form_Load()
OldProcAddr = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf MyWinProc)
End Sub
然后添加一个模块
粘贴如下代码:
Public Const GWL_WNDPROC = (-4)
Public Const WM_MOUSEWHEEL = &H20A
Public OldProcAddr As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public 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
Public Function MyWinProc(ByVal hwnd As Long, ByVal msg As Long, ByVal wp As Long, ByVal lp As Long) As Long
If msg <> WM_MOUSEWHEEL Then
MyWinProc = CallWindowProc(OldProcAddr, hwnd, msg, wp, lp)
Else
Debug.Print msg
Dim s As String
s = Hex(wp)
If Len(s) < 8 Then s = String(8 - Len(s), "0") & s
Dim zDelta As Long
zDelta = CInt("&h" & Left(s, 4)) * (-1)
If Form1.VScroll1.Value + zDelta < Form1.VScroll1.Min Then
Form1.VScroll1.Value = Form1.VScroll1.Min
ElseIf Form1.VScroll1.Value + zDelta > Form1.VScroll1.Max Then
Form1.VScroll1.Value = Form1.VScroll1.Max
Else
Form1.VScroll1.Value = Form1.VScroll1.Value + zDelta
End If
End If
End Function
- VB鼠标滚轴控制滚动条
- 滚动鼠标滚轴,缩放图片大小
- 滚动鼠标滚轴,缩放图片大小
- js : 隐藏滚动条利用滚轴滚动
- js鼠标滚轴控制文本框值
- C#中鼠标滚动控制滚动条滚动
- 鼠标滚轮控制panel滚动条
- 鼠标滚轮控制panel滚动条
- 鼠标滚轮控制panel滚动条
- WPF 使用鼠标滚轮控制ListBox水平滚动条滚动
- 用鼠标控制滚动的菜单条!(JavaScript)
- 鼠标穿透控制下层窗口的滚动条
- delphi 用鼠标滚轮控制Form的垂直滚动条
- vb.net 用上下左右键控制Grid滚动条
- vb.net 鼠标控制
- 关于滚动条控制一个或多个DataGridView的滚动条滚动的实现(VB.net)
- android控制滚动条滚动
- 滚动条定位控制
- Ubuntu 12.04 中自定义DNS服务器设置
- 三星 6410 uboot 关掉MMU
- 深入Linux网络核心堆栈
- /dev/zero和/dev/null的区别
- mysql学习之--1、mysql的简介
- VB鼠标滚轴控制滚动条
- c# 利用AForge.NET组件操作摄像头
- VB直角寻路学习1
- 鼠标点击时也会产生WM_MOUSEMOVE消息?
- mysql学习之--mysql的增删改查
- 在 Interface Builder 中使用自定义的视图
- 【Android】ImageView.ScaleType说明
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- 很酷的C语言技巧