blue_sky قام بنشر أبريل 4, 2004 قام بنشر أبريل 4, 2004 (معدل) السلام عليكم ورحمة الله ... كيف الغي عمل " Wheel Mouse" وهي الكره المدوره في الفأره .... اشكركم .. تم تعديل أبريل 4, 2004 بواسطه blue_sky
امير عاطف قام بنشر أبريل 4, 2004 قام بنشر أبريل 4, 2004 ضع الكود التالي بوحدة نمطيه Module : Option Compare Database Option Explicit 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 GWL_WNDPROC = -4 Public Const WM_MouseWheel = &H20A Public lpPrevWndProc As Long Public CMouse As CMouseWheel Public Function WindowProc(ByVal hwnd As Long, _ ByVal uMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long 'Look at the message passed to the window. If it is 'a mouse wheel message, call the FireMouseWheel procedure 'in the CMouseWheel class, which in turn raises the MouseWheel 'event. If the Cancel argument in the form event procedure is 'set to False, then we process the message normally, otherwise 'we ignore it. If the message is something other than the mouse 'wheel, then process it normally Select Case uMsg Case WM_MouseWheel CMouse.FireMouseWheel If CMouse.MouseWheelCancel = False Then WindowProc = CallWindowProc(lpPrevWndProc, hwnd, uMsg, wParam, lParam) End If Case Else WindowProc = CallWindowProc(lpPrevWndProc, hwnd, uMsg, wParam, lParam) End Select End Function وضع الكود التالي ايضاً بوحدة نمطيه اخرى Module : Option Compare Database Option Explicit Private frm As Access.Form Private intCancel As Integer Public Event MouseWheel(Cancel As Integer) Public Property Set Form(frmIn As Access.Form) 'Define Property procedure for the class which 'allows us to set the Form object we are 'using with it. This property is set from the 'form class module. Set frm = frmIn End Property Public Property Get MouseWheelCancel() As Integer 'Define Property procedure for the class which 'allows us to retrieve whether or not the Form 'event procedure canceled the MouseWheel event. 'This property is retrieved by the WindowProc 'function in the standard basSubClassWindow 'module. MouseWheelCancel = intCancel End Property Public Sub SubClassHookForm() 'Called from the form's OnOpen or OnLoad 'event. This procedure is what "hooks" or 'subclasses the form window. If you hook the 'the form window, you must unhook it when completed 'or Access will crash. lpPrevWndProc = SetWindowLong(frm.hwnd, GWL_WNDPROC, _ AddressOf WindowProc) Set CMouse = Me End Sub Public Sub SubClassUnHookForm() 'Called from the form's OnClose event. 'This procedure must be called to unhook the 'form window if the SubClassHookForm procedure 'has previously been called. Otherwise, Access will 'crash. Call SetWindowLong(frm.hwnd, GWL_WNDPROC, lpPrevWndProc) End Sub Public Sub FireMouseWheel() 'Called from the WindowProc function in the 'basSubClassWindow module. Used to raise the 'MouseWheel event when the WindowProc function 'intercepts a mouse wheel message. RaiseEvent MouseWheel(intCancel) End Sub وبعد ذلك تضع الكود التالي بنافذة الكود الخاصة بالنموذج الذي تريد ايقاف عجلة الماوس به: Option Compare Database Option Explicit 'Declare a module level variable as the custom class 'and give us access to the class's events Private WithEvents clsMouseWheel As CMouseWheel Private Sub Form_Load() 'Create a new instance of the class, 'and set the class's Form property to 'the current form Set clsMouseWheel = New CMouseWheel Set clsMouseWheel.Form = Me 'Subclass the current form by calling 'the SubClassHookForm method in the class clsMouseWheel.SubClassHookForm End Sub Private Sub Form_Close() 'Unhook the form by calling the 'SubClassUnhook form method in the 'class, and then destroy the object 'variable clsMouseWheel.SubClassUnHookForm Set clsMouseWheel.Form = Nothing Set clsMouseWheel = Nothing End Sub Private Sub clsMouseWheel_MouseWheel(Cancel As Integer) 'This is the event procedure where you can 'decide what to do when the user rolls the mouse. 'If setting Cancel = True, we disable the mouse wheel 'in this form. MsgBox "ÚÝæÇ áÇ íãßäß Çä ÊÓÊÎÏã ÚÌáÉ ÇáãÇæÓ ." Cancel = True End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.Maximize End Sub
blue_sky قام بنشر أبريل 5, 2004 الكاتب قام بنشر أبريل 5, 2004 السلام عليكم ورحمة الله ... اخي امير اثابك الله اعتقد ان هناك خطأ ما في الكود .. فهلا ارفقت لي مثال حتى تتضح الصوره !!!! ولك كل التقدير والاحترام ..
blue_sky قام بنشر أبريل 6, 2004 الكاتب قام بنشر أبريل 6, 2004 السلام عليكم ورحمة الله .. جزاك الله كل خير اخي مصلح .. بقي شي هلا ارفقت ملف MOUSEWHEEL.DLL كي اضيفه ضمن ملفات Windows32 لان الفورم لايعمل بدونه .. اشكرك جزيل الشكر اخي على تعاونك ...
awamayah قام بنشر أبريل 6, 2004 قام بنشر أبريل 6, 2004 الأخ / امير عاطف لك ألف تحية لكن اين وكيف اضع الكود الثالث Module1+Module2 تم اضافة الكود الاول والثاني باقي الثالث لك خالص التحية (y) (y)
امير عاطف قام بنشر أبريل 7, 2004 قام بنشر أبريل 7, 2004 الأخ awamayah : قم بانزال المثال الذي ارفقه الأخ مصلح أعلى وتجد به شرح وضع الكواد السابقة بالتفصيل
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.