請問 vb滑鼠 滾軸 事件在哪裡vb是不是沒有提供這個事件的功能

解决方案 »

  1.   

    vb滑动鼠标事件在mousemove里
    滚轴不知道
      

  2.   

    我也没用过,找一下,给你一个链接
    http://www.programbbs.com/doc/3107.htm
    还没有来的及验证,自已先看一下吧
      

  3.   

    有个控件truegrid,商业的需要注册,那个里支持滚轮事件,你可以找找看
      

  4.   

    我贴个我以前的代码你看看:
    首先建个模块,模块代码如下:Option ExplicitPrivate 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 = &H20AGlobal lpPrevWndProcA As Long
    Public bMouseFlag As Boolean            '鼠标事件激活标志
    Public Sub HookMouse(ByVal hwnd As Long)
        lpPrevWndProcA = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
    End SubPublic Sub UnHookMouse(ByVal hwnd As Long)
        SetWindowLong hwnd, GWL_WNDPROC, lpPrevWndProcA
    End SubPrivate 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.Top = Form1.Top + 500
            Form1.Label1.Caption = "鼠标滚轮向下滚动"
            Else                '朝显示器方向
            Form1.Top = Form1.Top - 500
            Form1.Label1.Caption = "鼠标滚轮向上滚动"
            End If
            '--------------------------------------------------
        Case Else        WindowProc = CallWindowProc(lpPrevWndProcA, hw, uMsg, wParam, lParam)    End SelectEnd FunctionPrivate 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其次是窗口:Private Sub Form_Load()
    HookMouse Me.hwnd
    End SubPrivate Sub Form_Unload(Cancel As Integer)
    UnHookMouse Me.hwnd
    End SubPrivate Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
    Form1.Left = Left - 500
    Label1.Caption = "按下鼠标左键"
    ElseIf Button = 2 Then
    Form1.Left = Left + 500
    Label1.Caption = "按下鼠标右键"
    ElseIf Button = 4 Then
    Move (Screen.Width - Form1.Width) / 2, (Screen.Height - Form1.Height) / 2
    Label1.Caption = "按下鼠标滚轮键"
    End If
    End Sub
    只是一个示例,希望对你有帮助
      

  5.   

    自己处理WM_MOUSEWHEEL消息。