UDF > WinAPIEx > GDI > Font & Text >


_WinAPI_GetTextExtentPoint32

Calcule la largeur et la hauteur d'une chaîne de texte spécifiée

#include <WinAPIGdi.au3>
_WinAPI_GetTextExtentPoint32 ( $hDC, $sText )

Paramètres

$hDC Identifie le contexte de périphérique
$sText Chaîne de texte

Valeur de retour

Succès: Retourne une structure $tagSIZE qui contient les dimensions de la chaîne.
Échec: Définit @error <> 0.

En relation

$tagSIZE

Voir aussi

Consultez GetTextExtentPoint32 dans la librairie MSDN.

Exemple

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <SendMessage.au3>
#include <WinAPIGdi.au3>
#include <WinAPIGdiDC.au3>
#include <WinAPIHObj.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
    Local $hGUI = GUICreate("Hauteur et largeur d'une chaîne.")
    GUISetState(@SW_SHOW, $hGUI)

    Local $sText = "Un peu de texte" ; Le texte dont nous voulons trouver la hauteur et la largeur
    Local $aStringDimension = GetStringDimensions($hGUI, $sText) ; Obtient un tableau à 1 dimension avec [0] = largeur et [1] = hauteur.
    MsgBox($MB_SYSTEMMODAL, "Largeur et hauteur de la chaîne", 'La largeur et la hauteur de la chaîne "'& $sText & '" sont:'& @CRLF & _
            "Largeur: " & $aStringDimension[0] & @CRLF & _
            "Hauteur: " & $aStringDimension[1] & @CRLF)
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

Func GetStringDimensions($hWnd, $sText)
    Local $hDC = _WinAPI_GetDC($hWnd) ; Obtient le handle de contexte de périphérique de la fenêtre courante.
    Local $hFont = _SendMessage($hWnd, $WM_GETFONT) ; Obtient la police avec laquelle le contrôle est en train de dessiner son texte.
    Local $hSelectObject = _WinAPI_SelectObject($hDC, $hFont) ; Sélectionne l'objet du contexte de périphérique.
    Local $tSIZE = _WinAPI_GetTextExtentPoint32($hDC, $sText) ; Obtient la largeur et la hauteur de la chaîne.

    _WinAPI_SelectObject($hDC, $hSelectObject)
    _WinAPI_ReleaseDC($hWnd, $hDC) ; Libère le contexte de périphérique.
    Local $aReturn[2] = [DllStructGetData($tSIZE, 1), DllStructGetData($tSIZE, 2)] ; Définit un tableau avec largeur et hauteur de la chaîne.
    Return $aReturn
EndFunc   ;==>GetStringDimensions