UDF > WinAPIEx > GDI > DeviceContext >


_WinAPI_DrawText

Dessine un texte format� dans le rectangle sp�cifi�

#include <WinAPIGdiDC.au3>
_WinAPI_DrawText ( $hDC, $sText, ByRef $tRECT, $iFlags )

Param�tres

$hDC Identifie le contexte de p�riph�rique
$sText La cha�ne � dessiner
$tRect Structure $tagRECT qui d�finit le rectangle qui contiendra le texte
$iFlags Pr�cise la m�thode de formatage du texte:
$DT_BOTTOM - Justifie le texte au bas du rectangle
$DT_CALCRECT - D�termine la largeur et la hauteur du rectangle
$DT_CENTER - Centre le texte horizontalement dans le rectangle
$DT_EDITCONTROL - Duplique les caract�ristiques d'affichage du texte � partir d'un contr�le Edit multiligne
$DT_END_ELLIPSIS - Remplace une partie de la cha�ne donn�e par des ellipses si n�cessaire
$DT_EXPANDTABS - Etend les caract�res de tabulation
$DT_EXTERNALLEADING - Inclut les jambages de la police externe dans la hauteur de ligne
$DT_HIDEPREFIX - Ignore le caract�re esperluette (&) en pr�fixe dans le texte.
La lettre qui suit ne sera pas soulign�, mais d'autres caract�res mn�monique en pr�fixe seront encore trait�s.
$DT_INTERNAL - Utilise la police syst�me pour calculer les mesures du texte
$DT_LEFT - Aligne le texte � gauche
$DT_MODIFYSTRING - Modifie la cha�ne donn�e pour correspondre au texte affich�
$DT_NOCLIP - Dessine sans �cr�tage
$DT_NOFULLWIDTHCHARBREAK - Emp�che un saut de ligne � un DBCS (cha�ne � caract�re � double largeur), de sorte que la r�gle de rupture de ligne �quivaut � la cha�ne SBCS.
Par exemple, ceci peut �tre utilis� dans des fen�tres cor�ens, pour plus de lisibilit� des �tiquettes d'ic�nes.
Cette valeur n'a aucun effet � moins que $DT_WORDBREAK soit sp�cifi�
$DT_NOPREFIX - D�sactive le traitement des caract�res de pr�fixe
$DT_PATH_ELLIPSIS - Pour le texte affich�, remplace les caract�res au milieu de la cha�ne avec des ellipses pour que le r�sultat tienne dans le rectangle sp�cifi�.
Si la cha�ne contient des caract�res barre oblique inverse (\), $DT_PATH_ELLIPSIS emp�che autant que possible du texte apr�s la derni�re barre oblique inverse.
La cha�ne n'est pas modifi�e, sauf si le flag $DT_MODIFYSTRING est sp�cifi�
$DT_PREFIXONLY - Dessine seulement un caract�re de soulignement (_) � la position du caract�re suivant le caract�re de pr�fixe esperluette.
Ne dessine pas d'autres caract�res de la cha�ne
$DT_RIGHT - Aligne le texte � droite
$DT_RTLREADING - Mise de droite � gauche pour la lecture de texte bidirectionnel
$DT_SINGLELINE - Affiche le texte sur une seule ligne
$DT_TABSTOP - D�finit les tabulations. Les bits 15-8 de $iFlags sp�cifient le nombre de caract�res pour chaque onglet
$DT_TOP - Texte justifi� en haut (ligne unique seulement)
$DT_VCENTER - Texte centr� verticalement (ligne unique seulement)
$DT_WORDBREAK - Mots coup�s
$DT_WORD_ELLIPSIS - Tronque un mot qui ne rentre pas dans le rectangle et ajoute des ellipses

Valeur de retour

Succ�s: Retourne la hauteur du texte
�chec: Retourne 0

Remarques

La fonction DrawText utilise la police choisit du contexte de p�riph�rique, la couleur du texte et la couleur d'arri�re-plan pour dessiner le texte.
Sauf si le format $DT_NOCLIP est utilis�, DrawText coupe le texte de sorte qu'il n'appara�t pas en dehors du rectangle sp�cifi�.
Tout formatage est suppos� avoir plusieurs lignes sauf si le format $DT_SINGLELINE est sp�cifi�.
Si la police s�lectionn�e est trop grande, DrawText ne cherche pas � la remplacer par une police plus petite.

Les constantes ci-dessus sont d�finies dans WindowsConstants.au3

En relation

$tagRECT, _WinAPI_GetBkMode, _WinAPI_SetBkMode

Voir aussi

Consultez DrawText dans la librairie MSDN.

Exemple

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

Global $g_tRECT, $g_hFont, $g_hOldFont, $g_hDC

HotKeySet("{ESC}", "_Exit")

$g_tRECT = DllStructCreate($tagRect)
DllStructSetData($g_tRECT, "Left", 5)
DllStructSetData($g_tRECT, "Top", 5)
DllStructSetData($g_tRECT, "Right", 250)
DllStructSetData($g_tRECT, "Bottom", 50)

$g_hDC = _WinAPI_GetDC(0)
$g_hFont = _WinAPI_CreateFont(50, 0, 0, 0, 400, False, False, False, $DEFAULT_CHARSET, _
        $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, 'Arial')
$g_hOldFont = _WinAPI_SelectObject($g_hDC, $g_hFont)

_WinAPI_SetTextColor($g_hDC, 0x0000FF)
_WinAPI_SetBkColor($g_hDC, 0x000000)
; Commentez la ligne suivante pour obtenir un fond noir au lieu d'un transparent
_WinAPI_SetBkMode($g_hDC, $TRANSPARENT)

While $g_tRECT > 0
    _WinAPI_DrawText($g_hDC, "Hello world!", $g_tRECT, $DT_CENTER)
    Sleep(100)
WEnd

Func _Exit()
    _WinAPI_SelectObject($g_hDC, $g_hOldFont)
    _WinAPI_DeleteObject($g_hFont)
    _WinAPI_ReleaseDC(0, $g_hDC)
    _WinAPI_InvalidateRect(0, 0)
    $g_tRECT = 0
EndFunc   ;==>_Exit