UDF > GUI > GuiListView >


_GUICtrlListView_ApproximateViewRect

Calcule la taille approximative nécessaire pour afficher un nombre donné d'éléments

#include <GuiListView.au3>
_GUICtrlListView_ApproximateViewRect ( $hWnd [, $iCount = -1 [, $iCX = -1 [, $iCY = -1]]] )

Paramètres

$hWnd ID/handle du contrôle
$iCount [optionnel] Nombre d'éléments à afficher dans le contrôle.
Si ce paramètre est réglé à -1 la fonction utilise le nombre total d'éléments dans le contrôle.
$iCX [optionnel] Proposition pour la dimension X du contrôle, en pixels.
Ce paramètre peut être réglé à -1 pour permettre à la fonction d'utiliser la valeur de la largeur actuelle.
$iCY [optionnel] Proposition pour la dimension Y du contrôle, en pixels.
Ce paramètre peut être réglé à -1 pour permettre à la fonction d'utiliser la valeur de la hauteur actuelle.

Valeur de retour

Retourne un tableau avec le format suivant:
    [0] - Largeur approximative, en pixels, nécessaire pour afficher les éléments
    [1] - Hauteur approximative, en pixels, nécessaire pour afficher les éléments

Remarque

La définition de la taille du contrôle à partir des dimensions fournies par les paramètres peut optimiser la peinture du contrôle et réduire le scintillement.

En relation

_GUICtrlListView_ApproximateViewHeight, _GUICtrlListView_ApproximateViewWidth

Exemple

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <MsgBoxConstants.au3>
#include <WinAPISysWin.au3>

Example()

Func Example()
    Local $aXY, $idListview

    GUICreate("ListView Approximate View Rect", 400, 300)
    $idListview = GUICtrlCreateListView("", 2, 2, 394, 268)
    GUISetState(@SW_SHOW)

    ; Ajoute des colonnes
    _GUICtrlListView_InsertColumn($idListview, 0, "Column 1", 100)

    ; Ajoute des éléments
    For $iI = 0 To 9
        _GUICtrlListView_AddItem($idListview, "Row " & $iI)
    Next

    MsgBox($MB_SYSTEMMODAL, "Information", "Approximate View Rect")
    ; Redéfinit la taille de l'affichage
    $aXY = _GUICtrlListView_ApproximateViewRect($idListview)
    _WinAPI_SetWindowPos(GUICtrlGetHandle($idListview), 0, 2, 2, $aXY[0], $aXY[1], $SWP_NOZORDER)

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    GUIDelete()
EndFunc   ;==>Example