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

VB 6 et antérieur Discussion :

détecter le changement de résolution de l'écran


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 120
    Billets dans le blog
    1
    Par défaut détecter le changement de résolution de l'écran
    Bonjour,

    J'ai appliqué la FAQ "Comment détecter le changement de résolution de l'écran" :

    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
    Public Function WindowProc(ByVal HWnd As Long, ByVal msg As Long, _
                               ByVal wParam As Long, ByVal lParam As Long) As Long
    Dim X As Long, Y As Long
     
     If msg = WM_DISPLAYCHANGE Then
         'la résolution a changé
         X = Screen.Width / Screen.TwipsPerPixelX    'résolution horizontale
         Y = Screen.Height / Screen.TwipsPerPixelY   'verticale
         frmParametres.lblResolutionEcran.Caption = X & " x " & Y
     End If
     
     'Appelle la procédure de fenêtre par défaut pour que Windows puisse traiter l'évènement
     WindowProc = CallWindowProc(oldWndProc, HWnd, msg, wParam, lParam)
     
    End Function
    Cependant, la résolution affichée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frmParametres.lblResolutionEcran.Caption = X & " x " & Y
    est celle d'avant le changement !
    J'ai essayé un "sleep (1000)" mais j'ai toujours la résolution d'avant.
    Comment faire pour connaître la nouvelle résolution de l'écran ?

    Merci

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Bienvenue sur DVP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function WindowProc(ByVal hwnd As Long, ByVal msg As Long, _
                               ByVal wParam As Long, ByVal lParam As Long) As Long
     
        If msg = WM_DISPLAYCHANGE Then
            'la résolution a changé
         DoEvents '<============chez moi avec cela sa fonctionne =================== 
         Form1.Label1.Caption = "Nouvel resolution :" & Form1.ScaleY(Screen.Width, vbTwips, vbPixels) _
         & " X " & Form1.ScaleX(Screen.Height, vbTwips, vbPixels)
        End If
     
        'Appelle la procédure de fenêtre par défaut pour que Windows puisse traiter l'évènement
        WindowProc = CallWindowProc(oldWndProc, hwnd, msg, wParam, lParam)
     
    End Function
    Sans le Doevents j'avais le même probléme (je suis sous Vista).
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    vb
    vb est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Par défaut Résolution écran
    Bonjour à vous,
    Voici mon code simple que je mets dans le "Load d'une feuille.....
    Juste dans cet exemple mettre un "Label pour afficher le résultat...ici le l'ai nommé lblRésolution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lblRésolution.Caption = "Résolution écran : " & Screen.Width / Screen.TwipsPerPixelX _
                                & "x" & Screen.Height / Screen.TwipsPerPixelY
    Simple, rapide et sans appel de fonction... tu reload et c'est cool
    Bien à vous.
    vb

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Le titre de la discussion est détecter le changement de résolution de l'écran
    Citation Envoyé par vb
    Simple, rapide et sans appel de fonction... tu reload et c'est cool
    Quand, avec quel evenement tu decides du reload ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre confirmé

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 120
    Billets dans le blog
    1
    Par défaut résolu
    doevents, bien sûr !

    ça marche, , merci pour cette réponse.

    Je précise : je suis sous Windows XP SP3, DELL Latitude C160.

  6. #6
    vb
    vb est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Par défaut
    Bonsoir,
    Tu as raison ProgElecT moi dans ma solution(la plus simple) c'est de fermer et de Reload, mais comme tu l'as fais remarqué la question est autre..
    Profil bas ...
    Amicalement
    vb

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

Discussions similaires

  1. capter le changement de résolution de l'écran
    Par thor76160 dans le forum C#
    Réponses: 2
    Dernier message: 20/08/2010, 10h18
  2. [AC-2003] Formulaire et changement de résolution d'écran
    Par Hamadokh dans le forum IHM
    Réponses: 1
    Dernier message: 13/08/2009, 18h34
  3. Code de changement de la résolution d'un écran
    Par GodGives dans le forum VB 6 et antérieur
    Réponses: 25
    Dernier message: 01/11/2007, 11h27
  4. Problème lors du changement de résolution d'écran
    Par yangoal25 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 10/11/2006, 15h33
  5. [M1][W1][N1][D1] Comment détecter un changement de résolution?
    Par jazz matazz dans le forum Contribuez
    Réponses: 6
    Dernier message: 04/03/2006, 21h20

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