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

VBA Access Discussion :

trouver les formulaires état de fenêtre restore


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 103
    Points : 91
    Points
    91
    Par défaut trouver les formulaires état de fenêtre restore
    Bonjour,

    Quel est le code ou instruction, qui me permettrait de trouver les formulaires ouverts en mode RESTORE ou MAXIMIZE ou MINIMIZE

    Autant que faire se peut, je ne souhaite pas que le focus passe d'un formulaire à l'autre pour le tester.

    Merci par avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 103
    Points : 91
    Points
    91
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim MForm
    For Each MForm In Forms
        MsgBox MForm.Name & " " & MForm.WindowHeight
    Next
    Ce code ne me satisfait pas.

    Bien-sure, je devine l'état de la fenêtre d'après sa hauteur. Mais, est-ce que sous toutes les versions d'ACCES, une fenêtre MINIMIZE à pour valeur WindowsHeight = 465 ? Je ne crois pas.
    Même si la hauteur de ma fenêtre ne sera jamais inférieure à 465, ce n'est pas cette information là que je cherche, mais bien l'état exact, MINIMIZE, MAXIMIZE ou RESTORE ...

    Une idée ?... Merci

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonsoir,

    l'API GetWindowLong devrait faire l'affaire pour le Minimize et le Maximize

    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
     
    Enum GET_WINDOW_LONG_FLAG
        GWL_STYLE = -16
    End Enum
    const  WS_MINIMIZE = &H20000000
    Const   WS_MAXIMIZE = &H1000000
    Declare Function usrGetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As GET_WINDOW_LONG_FLAG) As Long
     
    Public Function IsFormMax(hWnd as Long) as boolean
     IsFormMax=((usrgetwindowlong(hwnd, GWL_STYLE) And WS_MAXIMIZE)=WS_MAXIMIZE)
    End Function
     
    Public Function IsFormMin(hWnd as long) as boolean
     IsFormMin=((usrgetwindowlong(hwnd,GW_STYLE) AND WS_MINIMIZE)=WS_MINIMIZE)
    End function
    PS: pas glop! j'ai oublié des parenthèses.
    C'est corrigé. Glop!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 103
    Points : 91
    Points
    91
    Par défaut
    Merci Beaucoup.


    ___________________________________

    Il y a une faute de frappe ?


  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 007
    Points : 24 579
    Points
    24 579
    Par défaut
    Les paranthèses.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    il y a deux fonctions de l'API Windows un peu plus simples.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ' Savoir si une fenêtre est réduite ou agrandie au maximum
    Public Declare Function IsIconic Lib "user32.dll" (ByVal hwnd As Long) As Boolean
    Public Declare Function IsZoomed Lib "user32.dll" (ByVal hwnd As Long) As Boolean
    que tu pourrais utiliser comme ç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
    Sub tstEtatFenForm()
    Dim fm As Form
    For Each fm In Forms
        If fm.Visible = False Then
           MsgBox fm.Name & " : masqué"
        ElseIf IsIconic(fm.hwnd) Then
           MsgBox fm.Name & " : réduit"
        ElseIf IsZoomed(fm.hwnd) Then
           MsgBox fm.Name & " : agrandi au maximum"
        Else
           MsgBox fm.Name & " : normal"
        End If
    Next
    End Sub
    A+

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/05/2008, 10h13
  2. Réponses: 6
    Dernier message: 09/08/2007, 21h41
  3. Réponses: 2
    Dernier message: 04/05/2007, 10h55
  4. Trouver les item d'une fenêtre
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 25/02/2007, 11h05
  5. Réponses: 1
    Dernier message: 19/08/2006, 10h27

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