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]]]] )
$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. |
Succès: | Retourne 1. |
Échec: | Retourne 0. |
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.
Consultez TabbedTextOut dans la librairie MSDN.
#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