الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اضيف الحدث سكرول اب وسكرول دون

مغلق
بدأه Sism في 7 أكتوبر 2003 · 3 رد · 698 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله والصلاة والسلام على من لا نبي بعده

اخوتي في الله السلام عليكم ورحمة الله وبركاته

عندي مشكلة ان في الصورة Picture عايز اضيف حدثين جدد هما السكرول اب والسكرول دون

أي مثل الأنترنت والتصفح يمكن بالكرة التي بالماوس ان تصعد لأعلى الصفحة والأسفل

هل فقط اضع في قائمة الأحداث مثلا

Private Sub Picture1_ScrollUp()

End Sub

ومثلها

Private Sub Picture1_ScrollDown()

End Sub

هي لم تعمل معي فهل يوجد شئ يعرف ان هذا البريفت خاص بتحريك الماوس لأعلي او لأسفل

ارجو ان اكون عرضت مشكلتي بشكل واضح وان يكون لها حل من الأخوة الأفاضل

جزاكم الله كل خير

السلام عليكم ورحمة الله وبركاته

#2

----

#3

1 - يجب اضافة module جديد

وانسخ فية الاتى

Option Explicit




'subclass

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 Const WM_Mouse = &H20A
Public Const GWL_WNDPROC = -4

Public OldWndProc As Long
Public Sub SubClass(H_Wnd As Long)
OldWndProc = SetWindowLong(H_Wnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub UnSubClass(H_Wnd As Long)
SetWindowLong H_Wnd, GWL_WNDPROC, OldWndProc
End Sub
Public Function WindowProc(ByVal hwnd As Long, ByVal WindowMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next
Select Case WindowMsg
   Case WM_Mouse
       If HIWORD(wParam) < 0 Then
           'Scroll Down حدث ...اكتب الكود هنا
       Else
           'Scroll Up حدث ...اكتب الكود هنا
       End If
End Select

WindowProc = CallWindowProc(OldWndProc, hwnd, WindowMsg, wParam, lParam)
End Function
Private Function HIWORD(lValue As Long) As Integer
HIWORD = (lValue And &HFFFF0000) \ &H10000
End Function

لاستخدام الكود اكتب في الفورم

Private Sub Form_Load()
SubClass Picture1.hwnd
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
UnSubClass Picture1.hwnd
End Sub

Ali Sayed

#4

جزاك الله كل خير اخ Voodo ده اللي كنت انا عايزة

أثابك الله عليه

هذا الموضوع مغلق.

مواضيع مشابهة