API taille de fenetre

Résolu
rvp68
Messages postés
14
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
7 avril 2010
- 21 mai 2008 à 16:29
rvp68
Messages postés
14
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
7 avril 2010
- 22 mai 2008 à 09:12
Bonjour,

J'ai un probleme avec les API Windows, je m'explique:
Je souhaite connaitre la position ainsi que la taille d'une fenetre.
Je recupere une structure WINDOWINFO avec la fonction GetWindowInfo. Pour connaitre la position, ca fonctionne bien. Par contre, pas moyen de trouver  la taille de la fenetre.
En regardant sur  MSDN, j'ai vu qu'il existe une structure WINDOWPOS. Quelqu'un sait il quelle fonction peut etre utilisée pour remplir cette structure?

Merci par avance pour votre aide!
rvp68

6 réponses

Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
22 mai 2008 à 09:04
ta structure est fausse.... (en .Net)

Public Structure RECT
Dim Left As Integer
Dim Top As Integer
Dim Right As Integer
Dim Bottom As Integer
End Structure
3
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
21 mai 2008 à 17:14
GetWindowRect
/
GetClientRect
0
rvp68
Messages postés
14
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
7 avril 2010

21 mai 2008 à 17:36
Aurais-tu un exemple concret?
Car j'ai essayé d'utiliser ces fonction, et la taille renvoyée ne correspond pas! Si je bouge la fenetre (sans la redimensionner), les valeurs renvoyées par GetWindowRect sont modifiées.
Merci
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
22 mai 2008 à 07:30
logique que ce qui est renvoyé change...

GetWindowRect, comme te le dit la doc... renvoie les coordonnées de la fenetre

Left, Top, Right, Bottom

donc, si tu la déplace, tout ce petit monde varie...

mais Right-Left et Bottom-Top sont toujours corrects, eux...

http://msdn.microsoft.com/en-us/library/ms633519.aspx
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rvp68
Messages postés
14
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
7 avril 2010

22 mai 2008 à 09:02
J'avais bien sur lu la doc et essayé, mais je dois avoir une erreur ailleurs, car ca ne fonctionne pas correctement...

Si je ne fais que bouger la fenetre,sans redimensionner, je n'obtiens jamais la meme taille avec le code ci-dessous:

--------------------------------------------------
Public Structure RECT
        Dim Left As Long
        Dim Top As Long
        Dim Right As Long
        Dim Bottom As Long
End Structure

<System.Runtime.InteropServices.DllImport("user32", entrypoint:="GetWindowRect")> _
Private Function GetWindowRect(ByVal hWnd As System.IntPtr, ByRef lpRect As RECT) As Integer
End Function

Public Function apiGetSize(ByVal name) As RECT
        Dim R As RECT
            GetWindowRect(_window_handle_, R)
            Console.Write(vbCrLf & (R.Bottom - R.Top).ToString)
            Return R
End Function

----------------------------------------------------

J'ai egalement essayé avec un System.Drawing.Rectangle (a la place de la structure RECT), mais sans succes...

Je suis bloqué... Toute aide est la bienvenue, merci!
0
rvp68
Messages postés
14
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
7 avril 2010

22 mai 2008 à 09:12
ok ok.... que dire....
Merci pour ton aide Renfield!
A+
0