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 74
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 74
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 74
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
Rejoignez-nous