Taille d'une fenêtre en incluant la barre de titre

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Taille d'une fenêtre en incluant la barre de titre

Message par Droopy »

Ce code renvoie la position de la fenêtre recherchée ( par son titre )
Mais uniquement la zone client, c'est à dire que ces fonctions ne renvoient pas la taille totale de la fenêtre, donc zone client + barre de titre.
Auriez vous une idée

Code : Tout sélectionner

handle=FindWindow_(0,"Titre de la fenêtre recherchée")
If handle
  GetWindowRect_(handle,a.rect)
  Debug a\left
  Debug a\right
  Debug a\top
  Debug a\bottom
  
  
  GetClientRect_(handle,a.rect)
  Debug ""
  Debug a\left
  Debug a\right
  Debug a\top
  Debug a\bottom
  
  
  SetWindowPos_(handle,#HWND_TOP,1276,0,1288,1028,#SWP_NOACTIVATE)
 
EndIf
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

je ne suis pas sur de t'avoir bien compris droopy,
mais GetTitleBarInfo_() va sans doute t'aider
ou meme GetWindowInfo_() pour avoir la taille des bordures.

(?)

Code : Tout sélectionner

;--

#CCHILDREN_TITLEBAR = 5

Structure TITLEBARINFO
  cbSize.l
  rcTitleBar.RECT
  rgstate.l[#CCHILDREN_TITLEBAR+1]
EndStructure

;---

Handle = FindWindow_(0, "jaPBe V3") 

If Handle 
  
  If GetWindowRect_(Handle, rc.RECT) 
    Debug rc\left 
    Debug rc\right 
    Debug rc\top 
    Debug rc\bottom 
    Debug "" 
  EndIf
  
  If GetClientRect_(Handle, rc.RECT) 
    Debug rc\left 
    Debug rc\right 
    Debug rc\top 
    Debug rc\bottom 
    Debug "" 
  EndIf
  
  pwi.WINDOWINFO\cbSize = SizeOf(WINDOWINFO)
  If GetWindowInfo_(Handle, pwi)
    Debug pwi\cxWindowBorders
    Debug pwi\cyWindowBorders
    Debug ""
  EndIf
  
  pti.TITLEBARINFO\cbSize = SizeOf(TITLEBARINFO)
  If GetTitleBarInfo_(Handle, pti)
    Debug pti\rcTitleBar\left 
    Debug pti\rcTitleBar\right 
    Debug pti\rcTitleBar\top 
    Debug pti\rcTitleBar\bottom 
    Debug ""
  EndIf                
  
EndIf
Image
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Merci Flype, je vais regarder ça avec intéret.
A+ :D
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

GetWindowRect renvoie bien la taille réelle de la fenêtre, il me semble?
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

je comprend rien c'est du chinois pour moi
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Oui elle renvoie bien la taille réelle / son emplacement ( Fonctionne même si multi-écran )
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Droopy a écrit :Oui elle renvoie bien la taille réelle / son emplacement ( Fonctionne même si multi-écran )
Ben alors c'est quoi le soucis?
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

nico a écrit :
Droopy a écrit :Oui elle renvoie bien la taille réelle / son emplacement ( Fonctionne même si multi-écran )
Ben alors c'est quoi le soucis?
ah, ouf, enfin qq qui ce dit la meme chose que moi :D
parceque moi aussi je comprends pas la premiere question.
Image
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Effectivement, désolé de vous avoir embêté mais le premier code posté fonctionnait. :oops:

Je pensais qu'il renvoyais des valeurs erronées car avec mon écran ( résolution de 1280x1024 ) avec une fenêtre en plein écran, cette fonction renvoie 1288x1032 à la position -4,-4 !

En fait il est normal d'avoir des valeurs non normales, il fallait juste le savoir.

Merci encore
Répondre