UDF > WinAPIEx > System > Controls >


_WinAPI_GetEffectiveClientRect

Détermine un rectangle dans la zone client qui contient tous les contrôles spécifiées

#include <WinAPISys.au3>
_WinAPI_GetEffectiveClientRect ( $hWnd, $aCtrl [, $iStart = 0 [, $iEnd = -1]] )

Paramètres

$hWnd Le handle de la fenêtre qui a l'espace client à traiter.
$aCtrl Le tableau contenant les handles ou les identifiants des contrôles qui doivent être inclus dans le calcul de la zone client. Ce paramètre peut se réduire un handle ou un identifiant unique de contrôle.
$iStart [optionnel] L'index de l'élément de tableau qui contient le premier contrôle.
$iEnd [optionnel] L'index de l'élément de tableau qui contient le dernier contrôle.

Valeur de retour

Succès: Retourne la structure $tagRECT qui contient le rectangle avec la zone client effective.
Échec: Définit @error <> 0.

Remarques

Si un contrôle du tableau est visible, ou sera visible lorsque son parent devient visible, son rectangle est soustrait du rectangle client effectif.

Si tous les contrôles spécifiés sont manquants, la fonction retourne la zone client de la fenêtre parent.

Voir aussi

Consultez GetEffectiveClientRect dans la librairie MSDN.

Exemple

#include <GUIConstantsEx.au3>
#include <GUIStatusBar.au3>
#include <StaticConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPISys.au3>

; Crée une GUI
Global $hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), 600, 400)
Global $idMenu = GUICtrlCreateMenu("&File")
Global $idExit = GUICtrlCreateMenuItem("E&xit", $idMenu)
Global $a_vID[2]
$a_vID[0] = _GUICtrlStatusBar_Create($hForm)
$a_vID[1] = GUICtrlCreateListView('', 0, 0, 600, 200, -1, 0)

; Calcule la zone client effective (hors contrôles Menu, ListView et StatusBar)
Global $tRECT = _WinAPI_GetEffectiveClientRect($hForm, $a_vID)
Global $aPos = _WinAPI_GetPosFromRect($tRECT)
GUICtrlCreateLabel($aPos[2] & 'x' & $aPos[3], $aPos[0], $aPos[1], $aPos[2], $aPos[3], BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 25, 400, 0, 'Tahoma')
GUICtrlSetBkColor(-1, 0xFFD0D0)

; Affiche le GUI
GUISetState(@SW_SHOW)

Global $iMsg
Do
    $iMsg = GUIGetMsg()
Until $iMsg = $GUI_EVENT_CLOSE Or $iMsg = $idExit