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 :

[VBA] Récupérer le handle d'un contrôle


Sujet :

IHM

  1. #1
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut [VBA] Récupérer le handle d'un contrôle
    Hello,

    Je tourne en rond, quelqu'un parmis vous aurait t'il un code VBA permettant de récupérer le handle d'un contrôle dont le nom et le handle du formulaire sont passé en paramètres ?



    J'ai essayé avec FindWindowEx mais je n'y parviens pas

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    quel genre de contrôle???

  3. #3
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hey !

    Dans mon tuto AccessPaint, j'avais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Option Compare Database
     
    '''""""""""""""""""""""""""""""""""""""""""""""""""""'''
    '
    '                     API user32.dll
    '
    '''""""""""""""""""""""""""""""""""""""""""""""""""""'''
    Private Declare Function apiGetFocus Lib "user32" Alias "GetFocus" () As Long
     
    Function CtlhWnd(frmName As String, ctlName As String) As Long
        On Error Resume Next
        Forms(frmName).Controls(ctlName).SetFocus
        If Err Then
            CtlhWnd = 0
        Else
            CtlhWnd = apiGetFocus
        End If
        On Error GoTo 0
    End Function

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    J'ai fais pas mal de tutos mais pas celui là


    Bon c'est déjà très bien, ça correspond à mes besoins,

    mais pour le fun, t'aurais pas une version sans avoir à donner le focus au contrôle ?

    En tout cas


    slt,

    quel genre de contrôle???
    Justement, n'importe quel contrôle de base on va dire :

    Zone de texte, zone de liste, combobox, case à cocher, option et bouton.

  5. #5
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    de rien

    ça va être compliqué sans le focus ... puisque les contrôles Access contrairement à VB n'ont pas d'existence au sens Windowsien du terme, il sont géré à la volée par Access.

    Citation Envoyé par Tofalu

    mais pour le fun, t'aurais pas une version sans avoir à donner le focus au contrôle ?

    En tout cas

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par Tofalu

    Justement, n'importe quel contrôle de base on va dire :

    Zone de texte, zone de liste, combobox, case à cocher, option et bouton.
    justement ça fonctionne pas de la même manière pour tous les contrôle
    Seules les zones de liste on un handle sans y mettre le focus (classe de fenêtre oGrid)
    Les zones de texte ne deviennent des fenêtres que quand elles ont le focus.
    les cases à cocher, boutons, images sont dessinés sur le formulaire et n'ont jamais de handle...

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Solution trouver difficilement sur le WEB


    Il faut aller sur le site Web de Stephen Lebans (www.lebans.com)

    Ou une série de modules de Classes existent pour faire ce que tu veux.

    Cela fonctionne très bien pour les contrôles "intégrés" de MS/Access où il trouve facilement les handles des contrôles (boucle de scan). ATTENTION : Si trop de contrôles, le temps d'exécution risque de devenir long à chaque mouvement de souris...

    J'essaye de faire la même choses pour d'autres OCX par exemple Treeview, mais n'y parvient pas.

    Il semble "bloqué" sur la définition des évènements liés à MSCOMTLIB.TreeView (Microsoft Common Controls V6)
    avec ...

    Public Event MouseMove(Button As Integer, Shift As Integer, x As Long, y As Long)
    Private Sub m_TreeView_MouseMove(Button As Integer, Shift As Integer, x As Long, y As Long)


Discussions similaires

  1. récupérer le handle d’un contrôle
    Par Montor dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 14/10/2008, 15h13
  2. Réponses: 8
    Dernier message: 10/08/2008, 05h39
  3. Réponses: 7
    Dernier message: 14/01/2008, 18h48
  4. Récupérer le handle de contrôles qui ne sont pas atteignables par la souris
    Par olaf_le_preux dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 14/01/2008, 10h08
  5. [VBA-ACCESS]récupérer le handle d'un fichier
    Par christrabin dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/05/2007, 21h40

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