Bonjour les developpezien(ne)s,
Actuellement dans mon formulaire je met ce code en en-tête pour inhibé la molette de la souris:
et en procédure évènementiel sur chargement je met ce code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Option Compare Database 'Déclaration pour blocage des signaux de la molette Private Declare Sub MouseWheelHook Lib "MouseWheelDVPNoReg.dll" (ByVal pHwnd As Long, ByVal pScrollForm As Boolean) Private Declare Sub MouseWheelUnHook Lib "MouseWheelDVPNoReg.dll" (ByVal pHwnd As Long) Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Et ca fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub Form_Load() 'Se positionne sur un enregistrement vide DoCmd.GoToRecord , , acNewRec 'Bloque le défilement des enregistrements par la molette LoadLibrary Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name))) & "\MouseWheelDVPNoReg.dll" MouseWheelHook Me.Hwnd, True
j'ai essayé de simplifier en mettant ce code dans un module à la place de le mettre en en-tête afin d'éviter de l'écrire dans chaque nouveau formulaire:
et ca ne marche pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Option Compare Database Option Explicit 'Déclaration pour blocage des signaux de la molette Private Declare Sub MouseWheelHook Lib "MouseWheelDVPNoReg.dll" (ByVal pHwnd As Long, ByVal pScrollForm As Boolean) Private Declare Sub MouseWheelUnHook Lib "MouseWheelDVPNoReg.dll" (ByVal pHwnd As Long) Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Je voudrai savoir s'il y a la possibilité de simplifier un peu plus en mettant le plus gros code qui permet d'inhibé la molette dans un modules
et de faire seulement un appelle dans l'événement sur chargement pour éviter le gros code dans chaque nouveau formulaire créer.
Je vous remercie par avance de votre aide ^^.
Partager