UDF > WinAPIEx > GDI > Font & Text >


_WinAPI_TabbedTextOut

Ecrit une chaîne de caractères à un emplacement spécifié et étend les tabulations aux positions de taquets de tabulation spécifiées

#include <WinAPIGdi.au3>
_WinAPI_TabbedTextOut ( $hDC, $iX, $iY, $sText [, $aTab = 0 [, $iStart = 0 [, $iEnd = -1 [, $iOrigin = 0]]]] )

Paramètres

$hDC Le handle du contexte de périphérique.
$iX La coordonnée x du point de départ de la chaîne, en unités logiques.
$iY La coordonnée y du point de départ de la chaîne, en unités logiques.
$sText La chaîne de caractères à dessiner.
$aTab [optionnel] Le tableau contenant les positions des taquets de tabulation, en unités logiques. Les taquets de tabulation doivent être triés dans l'ordre croissant; la plus petite valeur doit être le premier élément du tableau. En outre, il peut être une valeur entière qui est une position de taquet. Dans ce cas, les taquets de tabulation sont séparés par la distance indiquée par cette valeur.
Si ce paramètre est égal à 0, les taquets sont étendues à huit fois la largeur moyenne des caractères.
$iStart [optionnel] L'index de l'élément de tableau qui contient la première position de taquet.
$iEnd [optionnel] L'index de l'élément de tableau qui contient la dernière position de taquet.
$iOrigin [optionnel] La coordonnée x de la position de départ à partir de laquelle les tabulations sont développées, en unités logiques. Ceci permet à une application d'appeler la fonction à plusieurs reprises pour une seule ligne. Si une application appelle la fonction plus d'une fois avec une position de départ définie à la même valeur à chaque fois, la fonction étend toutes les tabulations relativement à la position spécifiée par ce paramètre.

Valeur de retour

Succès: Retourne 1.
Échec: Retourne 0.

Remarques

La chaîne est écrite dans la police sélectionnée courante, la couleur de fond et la couleur du texte courantes.

Par défaut, la position courante n'est pas utilisée ou mise à jour par cette fonction. Si une application a besoin de mettre à jour la position courante quand elle appelle la fonction, l'application peut appeler _WinAPI_SetTextAlign() avec le flag $TA_UPDATECP. Ensuite, le système ignore les paramètres X et Y sur les appels suivants de la _WinAPI_TabbedTextOut()
fonction, en utilisant la position courante à la place.

Appelez _WinAPI_GetExtended() pour obtenir une structure $tagSIZE contenant les dimensions de la chaîne.

En relation

_WinAPI_GetExtended

Voir aussi

Consultez TabbedTextOut dans la librairie MSDN.

Exemple

#include <FontConstants.au3>
#include <SendMessage.au3>
#include <StaticConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIGdiDC.au3>
#include <WinAPIHObj.au3>
#include <WinAPISysWin.au3>
#include <WindowsConstants.au3>

; Crée une GUI
Local $hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), 400, 400)
Local $idPic = GUICtrlCreatePic('', 0, 0, 400, 400)
Local $hPic = GUICtrlGetHandle($idPic)

; Crée un bitmap
Local $hDev = _WinAPI_GetDC($hPic)
Local $hDC = _WinAPI_CreateCompatibleDC($hDev)
Local $hSource = _WinAPI_CreateCompatibleBitmapEx($hDev, 400, 400, _WinAPI_SwitchColor(_WinAPI_GetSysColor($COLOR_3DFACE)))
Local $hSv = _WinAPI_SelectObject($hDC, $hSource)

; Dessine les objets
Local $hOldBrush = _WinAPI_SelectObject($hDC, _WinAPI_GetStockObject($DC_BRUSH))
Local $hOldPen = _WinAPI_SelectObject($hDC, _WinAPI_GetStockObject($DC_PEN))

_WinAPI_SetTextColor($hDC, 0xCD0091)
_WinAPI_SetBkMode($hDC, $TRANSPARENT)
Local $hFont = _WinAPI_CreateFont(12, 0, 0, 0, $FW_NORMAL, 0, 0, 0, $DEFAULT_CHARSET, $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $ANTIALIASED_QUALITY, $DEFAULT_PITCH, 'Arial Black')
Local $hObj = _WinAPI_SelectObject($hDC, $hFont)
_WinAPI_TextOut($hDC, 10, 15, 'Simple Text')
Local $sTabbedTextOut = 'Tabbed '& @TAB & 'Text '& @TAB & 'Out'
_WinAPI_TextOut($hDC, 10, 35, $sTabbedTextOut)
_WinAPI_TabbedTextOut($hDC, 10, 65, $sTabbedTextOut)
_WinAPI_SelectObject($hDC, $hObj)
_WinAPI_DeleteObject($hFont)

; Fusionne le bitmap
Local $hBitmap = _WinAPI_CreateCompatibleBitmap($hDev, 400, 400)
Local $hBrush = _WinAPI_SelectObject($hDC, $hOldBrush)
_WinAPI_DeleteObject($hBrush)
Local $hPen = _WinAPI_SelectObject($hDC, $hOldPen)
_WinAPI_DeleteObject($hPen)
_WinAPI_SelectObject($hDC, $hBitmap)
_WinAPI_DrawBitmap($hDC, 0, 0, $hSource, $MERGECOPY)
_WinAPI_ReleaseDC($hPic, $hDev)
_WinAPI_SelectObject($hDC, $hSv)
_WinAPI_DeleteObject($hSource)
_WinAPI_DeleteDC($hDC)

; Définit le bitmap dans le contrôle Picture
_SendMessage($hPic, $STM_SETIMAGE, 0, $hBitmap)
$hObj = _SendMessage($hPic, $STM_GETIMAGE)
If $hObj <> $hBitmap Then
    _WinAPI_DeleteObject($hBitmap)
EndIf

GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = -3