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

Développement Windows Discussion :

GetWindowRect () renvoie des valeurs bizarre quand la fenetre est maximisée


Sujet :

Développement Windows

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 183
    Points : 715
    Points
    715
    Par défaut GetWindowRect () renvoie des valeurs bizarre quand la fenetre est maximisée
    Bonjour,
    je cherche à trouver la position et la taille d'une fenêtre selon son hwnd.
    GetWindowRect() semble être tout indiquée.
    Cependant, quand la fenêtre est maximiser, je devrais avoir sa x=0 y=0 w=1920 h=1040 (40px le menu demarrer de W10)
    mais j'obtient sa sur Windows 10 x=-8 y=-8 w=1936 h=1056
    et sa sur Windows XP x=-4 y=-4 w=1928 h=1058

    Pourquoi x et y sont négatif lorsque la fenêtre est maximiser? Comment obtenir les vrais valeurs?
    Aprés 2 jours de recherche, je m'en remet à vous.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 183
    Points : 715
    Points
    715
    Par défaut
    Bon je me répond à moi même, aux cas ou si les moteurs de recherche montre mon message.
    ClientToScreen() avec {0,0} pour avoir la position
    GetClientRect() avec right et bottom pour la taille.
    Les 2 fonctions dépende de user32.dll
    voici les import DLL qui vont avec pour le C#.
    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
    20
    21
    22
     
    [StructLayout(LayoutKind.Sequential)]
        protected struct RectWin32
        {
            public Int32 left;//The x-coordinate of the upper-left corner of the rectangle.
            public Int32 top;//The y-coordinate of the upper-left corner of the rectangle.
            public Int32 right;//The x-coordinate of the lower-right corner of the rectangle.
            public Int32 bottom;//The y-coordinate of the lower-right corner of the rectangle.
     
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PointWin32
        {
            public Int32 x;//The x-coordinate of the upper-left corner of the rectangle.
            public Int32 y;//The y-coordinate of the upper-left corner of the rectangle.
     
        }
     
            [DllImport("user32.dll")]
            private static extern bool GetClientRect(IntPtr hWnd, ref RectWin32 rect);
            [DllImport("user32.dll")]
            private static extern bool ClientToScreen(IntPtr hWnd, ref PointWin32 rect);
    Etant donnée que c'est moi qui est écrit ces import je ne sait pas si ils sont optimisé. Mais en tout cas elle fonctionne. Les commentaires sont des copier/coller de Msdn WinApi. Les fonctions sont compatible Windows 2000 jusqu’à Windows 10.

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

Discussions similaires

  1. [WD10] Renvoie des valeurs
    Par karim.net7 dans le forum WinDev
    Réponses: 5
    Dernier message: 13/07/2010, 16h52
  2. requête avec jointure qui renvoie des résultats bizarres
    Par Canari74 dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 20/05/2008, 02h13
  3. ClientRectangle me donne des valeurs bizarres
    Par orobin dans le forum Windows Forms
    Réponses: 1
    Dernier message: 01/01/2008, 21h34
  4. [Tableaux] Foreach renvoie des valeurs double en php4
    Par Dantahoua dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2007, 17h49
  5. Recordset vide alors que la requete renvoie des valeurs
    Par lepiou dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 07/06/2006, 10h36

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