Funktionreferenz


_WinAPI_DrawText

Beschreibung anzeigen in

Zeichnet formatierten Text in das angegebene Rechteck

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

Parameter

$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

Rückgabewert

Erfolg: Die Höhe des Textes
Fehler: 0

Bemerkungen

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>

Verwandte Funktionen

$tagRECT, _WinAPI_GetBkMode, _WinAPI_SetBkMode

Siehe auch

Suche nach DrawText in der MSDN Bibliothek.

Beispiel

#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