Récuperer dimension fenetre [Résolu]

Signaler
Messages postés
23
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
28 juin 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,
Tout est dans le titre
Vous connaissez SetWindowPos ?
Moi je cherche GetWindowPos, seulement sa n'existe pas ...
Donc si vous avez une alternative, je suis preneur
Merci pour vos futurs suggestion

10 réponses


Bonsoir,

Utilise l'api GetWindowRect

<DllImport("user32.dll")> _
Private Shared Function GetWindowRect(ByVal hWnd As IntPtr, ByRef lpRect As Rectangle) As IntPtr
End Function

Après avoir importé Interopservices :
Imports System.Runtime.InteropServices

On stocke le résultat dans un Rectangle (lpRect) déclaré précédement :
Dim MonRectangle as new Rectangle 

Je t'ai fait un petit exemple ici :
Imports System.Runtime.InteropServices
Public Class Form1
    <DllImport("user32.dll")> _
    Private Shared Function GetWindowRect(ByVal hWnd As IntPtr, ByRef lpRect As Rectangle) As IntPtr
    End Function
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim rect As New Rectangle
        GetWindowRect(Me.Handle, rect)
        MessageBox.Show(String.Format("x={0} y={1} w={2} h={3}", rect.Left, rect.Top, rect.Width, rect.Height))
    End Sub
End Class

En fait tu as raison je viens de tester.
Mais il suffit de faire :
        MessageBox.Show(String.Format("x={0} y={1} w={2} h={3}", rect.Left, rect.Top, rect.Width - rect.Left, rect.Height - rect.Top))
Retrancher left de la largeur et top de la hauteur
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Bonjour,
GetWindowPlacement ne te paraît pas suffisamment "parlant" ?



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
23
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
28 juin 2012

Merci beaucoup !
GetWindowRect est super pour ce du placement par rapport à l'écran !
Mais il me faudrait aussi pour la taille : Hauteur et largeur de la fenêtre ...
Si il existe une api qui fait ça, ce serait super !
Messages postés
23
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
28 juin 2012

Je suis bête, j'avais pas vu Width et Height
C'est tout simplement super, merci beaucoup !!!!
Messages postés
23
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
28 juin 2012

Je retire ce que j'ai dit : Width et Height ne corresponde pas à la taille de la fenêtre.
Donc si vous connaissez une API qui fait cela, je suis preneur
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Un rectangle est défini par les coordonnées de ses 4 points (left, top, right et bottom)
La largeur d'un rectangle et donc tout bêtement la différence right - left et sa hauteur, tout bêtement Bottom - Top.
Et ceci : que l'on utilise la fonction GetWindowPlacement ou la fonction GetWindowRect de l'Api de Windows. Toutes deux utilises la même structure RECT (les coordonnées des 4 points d'un rectangle).




________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
23
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
28 juin 2012

Super !!!
Merci à vous deux pour votre précieuse aide !!!
SUJET RÉSOLU !
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Résolu ?
Probablement pour toi et uniquement pour ton but actuel.
Pas pour moi. Du moins : pas parfaitement car la fonction utilisée, contrairement à l'autre, te retourne non les dimensions de la fenêtre dans son état "normal", mais celles de l'état dans lequel elle se trouve à un instant t (après un redimensionnement par étirement, par exemple).
Mais bon ... Tout dépend de ce que tu veux faire ...



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ