Zeichnet formatierten Text in das angegebene Rechteck
#include <WinAPIGdiDC.au3>
_WinAPI_DrawText ( $hDC, $sText, ByRef $tRect, $iFlags )
$hDC | Handle zu einem Gerätekontext |
$sText | Die zu zeichnenden Strings |
$tRECT | $tagRECT Struktur, die das Rechteck enthält, in das der Text gezeichnet werden soll |
$iFlags | Legt die Methode der Textformatierung fest: $DT_BOTTOM - Setzt den Text untenbündig im Rechteck $DT_CALCRECT - Ermittelt die Breite und Höhe des Rechtecks $DT_CENTER - Zentriert den Text horizontal im Rechteck $DT_EDITCONTROL - Dupliziert die Textanzeige-Eigenschaften eines mehrzeiligen Edit-Controls $DT_END_ELLIPSIS - Ersetzt Teile des Strings notfalls mit Auslassungszeichen (...) $DT_EXPANDTABS - Expandiert Tab Druckzeichen $DT_EXTERNALLEADING - Berücksichtigt bei mehrzeiligem Text den Durchschuss in der Zeichenhöhe $DT_HIDEPREFIX - Ignoriert den Kaufmannsund-Präfix (& - Unterstreichung) im Text. Der darauf folgende Buchstabe wird nicht unterstrichen, andere Mnemonik-Präfixe werden aber weiterhin verarbeitet. $DT_INTERNAL - Benutzt den Systemzeichensatz, um die Schriftmaße zu berechnen $DT_LEFT - Text ist linksbündig $DT_MODIFYSTRING - Modifiziert die Strings, um den anzuzeigenden Text anzupassen $DT_NOCLIP - Unterdrückt das Abschneiden von Text bzw. Zeichenteilen an den Grenzen des Rechtecks $DT_NOFULLWIDTHCHARBREAK - Verhindert Zeilenumbrüche bei DBCS (doppelt-lange Strings), dadurch gilt die gleiche Regel wie für Strings einfacher Länge. Dies kann zum Beispiel genutzt werden, um unter einem koreanischen Windows die Lesbarkeit der Icon-Beschriftungen zu verbessern. Dieser Wert hat keinen Einfluss, wenn nicht auch $DT_WORDBREAK angegeben wird. $DT_NOPREFIX - Schaltet das Verarbeiten aller Präfixzeichen ab (z.B. & für Unterstreichung) $DT_PATH_ELLIPSIS - Ersetzt im angezeigten Text so viele Zeichen in der Mitte des Strings durch Auslassungszeichen (...), bis das Ergebnis in das angegebene Rechteck passt. Wenn der String Backslash-Zeichen (\) enthält, behält $DT_PATH_ELLIPSIS so viele Zeichen wie möglich nach dem letzten Backslash bei. der String wird nicht verändert, wenn nicht auch $DT_MODIFYSTRING angegeben wird. $DT_PREFIXONLY - Zeichnet nur die Unterstreichung an der Position eines Zeichens, das auf einen Kaufmannsund-Präfix (&) folgt. Es wird kein weiteres Zeichen des Strings ausgegeben. $DT_RIGHT - Text ist rechtsbündig $DT_RTLREADING - Rechts-nach-Links Ausrichtung des Textes $DT_SINGLELINE - Zeigt den Text einzeilig an $DT_TABSTOP - Setzt die Tabstopps. Die Bits 15-8 der $iFlags legen die Anzahl der Druckzeichen in einem Tab fest. $DT_TOP - Setzt den Text obenbündig im Rechteck (nur bei einzeiligem Text) $DT_VCENTER - Zentriert den Text vertikal (nur bei einzeiligem Text) $DT_WORDBREAK - Bricht Wörter in Zeilen um $DT_WORD_ELLIPSIS - Beschneidet alle Wörter, die nicht in das angegebene Rechteck passen und fügt dafür Auslassungszeichen an |
Erfolg: | Die Höhe des Textes |
Fehler: | 0 |
Die DrawText-Funktion benutzt zum Zeichnen die im Gerätekontext gewählte Schriftart, Textfarbe und Hintergrundfarbe.
Sofern nicht das $DT_NOCLIP-Format verwendet wird, beschneidet DrawText den Text, sodass dieser nicht außerhalb des angegebenen Rechtecks erscheint.
Bei allen Formatierungen wird angenommen, dass es sich um mehrzeiligen Text handelt, außer wenn $DT_SINGLELINE angegeben wird.
Ist die gewählte Schriftart zu groß, versucht DrawText nicht, diese durch eine kleinere zu ersetzen.
Oben gennante Konstanten benötigen #include <WindowsConstants.au3>
$tagRECT, _WinAPI_GetBkMode, _WinAPI_SetBkMode
Suche nach DrawText in der MSDN Bibliothek.
#include <FontConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIGdiDC.au3>
#include <WinAPIHObj.au3>
#include <WinAPISysWin.au3>
#include <WindowsConstants.au3>
Global $tRECT, $g_hFont, $g_hOldFont, $g_hDC
HotKeySet("{ESC}", "_Exit")
$tRECT = DllStructCreate($tagRect)
DllStructSetData($tRECT, "Left", 5)
DllStructSetData($tRECT, "Top", 5)
DllStructSetData($tRECT, "Right", 300)
DllStructSetData($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)
; Kommentiere die nächste Zeile aus, um einen schwarzen statt transparenten Hintergrund zu erhalten.
_WinAPI_SetBkMode($g_hDC, $TRANSPARENT)
While 1
_WinAPI_DrawText($g_hDC, "www.autoit.de", $tRECT, $DT_CENTER)
Sleep(7000)
_Exit()
WEnd
Func _Exit()
_WinAPI_SelectObject($g_hDC, $g_hOldFont)
_WinAPI_DeleteObject($g_hFont)
_WinAPI_ReleaseDC(0, $g_hDC)
_WinAPI_InvalidateRect(0, 0)
$tRECT = 0
Exit
EndFunc ;==>_Exit