IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Il y a t'il la possibilité de faire plus simple pour inhibé la molette de la souris dans un formulaire? [AC-2003]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 61
    Points
    61
    Par défaut Il y a t'il la possibilité de faire plus simple pour inhibé la molette de la souris dans un formulaire?
    Bonjour les developpezien(ne)s,

    Actuellement dans mon formulaire je met ce code en en-tête pour inhibé la molette de la souris:

    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 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
    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
    Et ca fonctionne très bien.


    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:

    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
    et ca ne marche pas...

    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 ^^.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Bonjour
    Essaye de remplacer le mot Private par Public.
    Frédéric
    Développeur d'Applications Access

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 61
    Points
    61
    Par défaut
    Merci fgiambelluco
    Ça marche nickel.

    Peut on réduire aussi ce code qu'on rajoute à chaque formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LoadLibrary Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name))) & "\MouseWheelDVPNoReg.dll"
    MouseWheelHook Me.Hwnd, True
    En gros remplacer ce code par un code plus petit du style écrire simplement molette pour faire appelle au code

    merci beaucoup ^^

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Re bonjour
    Peut on réduire aussi ce code qu'on rajoute à chaque formulaire:


    Code :
    LoadLibrary Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name))) & "\MouseWheelDVPNoReg.dll"
    MouseWheelHook Me.Hwnd, TrueEn gros remplacer ce code par un code plus petit du style écrire simplement molette pour faire appelle au code
    Le chargement de la bilbliothèque pourrait se faire dès l'ouverture du premier formulaire

    Pour
    MouseWheelHook Me.Hwnd, TrueEn
    il faut bien envoyer à la fonction une référence au formulaire ouvert
    Frédéric
    Développeur d'Applications Access

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 61
    Points
    61
    Par défaut
    Ok ^^ Merci fgiambelluco.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] possibilite de faire une boucle pour eviter de rappeler x fois un userform
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/03/2011, 08h50
  2. Réponses: 3
    Dernier message: 29/08/2007, 20h43
  3. Possibilité de faire des curseurs imbriqués?
    Par jeje.r dans le forum Sybase
    Réponses: 3
    Dernier message: 22/04/2007, 01h09
  4. Possibilité de faire mon projet en applet ?
    Par nicofromChina dans le forum Applets
    Réponses: 7
    Dernier message: 27/03/2007, 10h57
  5. Réponses: 3
    Dernier message: 01/08/2006, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo