منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] كيفية ربط VScroll1 بعجلة الماوس - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم أسئلة واستفسارات الأعضاء - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=94)
+--- قسم : قسم Visual Basic 6 وما قبله (http://vb4arb.com/vb/forumdisplay.php?fid=167)
+--- الموضوع : [سؤال] كيفية ربط VScroll1 بعجلة الماوس (/showthread.php?tid=11964)



كيفية ربط VScroll1 بعجلة الماوس - Ahmed Gandos - 05-04-15

أريد كود لربط VScroll1 بعجلة الماوس


RE: كيفية ربط VScroll1 بعجلة الماوس - أبو عمر - 25-09-15

PHP كود :
Option Explicit

Private Type LONG_JOINED
    Value 
As Long
End Type

Private Type LONG_SPLIT
    LowValue 
As Integer
    HighValue 
As Integer
End Type

Private LONG_JOINED As LONG_JOINED
Private LONG_SPLIT As LONG_SPLIT

Public Function SubclassProc_
    ByRef hWnd 
As Long_
    ByRef uMsg 
As Long_
    ByRef wParam 
As Long_
    ByRef lParam 
As Long_
    ByVal dwRefData 
As Long) As Long

    Const WM_MOUSEWHEEL 
As Long = &H20A&
 
   Const WM_MOUSEHWHEEL As Long = &H20E'Requires Vista or later.
    Dim Sum As Integer

    LONG_JOINED.Value = wParam
    LSet LONG_SPLIT = LONG_JOINED

    Select Case uMsg
        Case WM_MOUSEWHEEL
            With VScroll1
                If .Enabled Then
                    Sum = .Value - LONG_SPLIT.HighValue \ 12
                    If 0 <= Sum And Sum <= .Max Then .Value = Sum
                End If
            End With

        Case WM_MOUSEHWHEEL
            With HScroll1
                If .Enabled Then
                    Sum = .Value + LONG_SPLIT.HighValue \ 12
                    If 0 <= Sum And Sum <= .Max Then .Value = Sum
                End If
            End With

        Case Else
            SubclassProc = DefSubclassProc(hWnd, uMsg, wParam, lParam)
    End Select
End Function 
تحميل المثال