Dessine un texte format� dans le rectangle sp�cifi�
#include <WinAPIGdiDC.au3>
_WinAPI_DrawText ( $hDC, $sText, ByRef $tRECT, $iFlags )
$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 |
Succ�s: | Retourne la hauteur du texte |
�chec: | Retourne 0 |
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
$tagRECT, _WinAPI_GetBkMode, _WinAPI_SetBkMode
Consultez DrawText dans la librairie MSDN.
#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