Page 1 sur 1

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

Publié : mar. 10/oct./2006 18:38
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

Publié : mar. 10/oct./2006 19:10
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

Publié : mar. 10/oct./2006 21:07
par Droopy
Merci Flype, je vais regarder ça avec intéret.
A+ :D

Publié : mer. 11/oct./2006 11:20
par nico
GetWindowRect renvoie bien la taille réelle de la fenêtre, il me semble?

Publié : mer. 11/oct./2006 14:13
par bernard13
je comprend rien c'est du chinois pour moi

Publié : mer. 11/oct./2006 14:16
par Droopy
Oui elle renvoie bien la taille réelle / son emplacement ( Fonctionne même si multi-écran )

Publié : mer. 11/oct./2006 17:13
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?

Publié : mer. 11/oct./2006 17:38
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.

Publié : mer. 11/oct./2006 18:44
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