Freigeben über


DrawTextExA-Funktion (winuser.h)

Die DrawTextEx--Funktion zeichnet formatierten Text im angegebenen Rechteck.

Syntax

int DrawTextExA(
  [in]      HDC              hdc,
  [in, out] LPSTR            lpchText,
  [in]      int              cchText,
  [in, out] LPRECT           lprc,
  [in]      UINT             format,
  [in]      LPDRAWTEXTPARAMS lpdtp
);

Parameter

[in] hdc

Ein Handle für den Gerätekontext, in dem gezeichnet werden soll.

[in, out] lpchText

Ein Zeiger auf die Zeichenfolge, die den zu zeichnenden Text enthält. Wenn der cchText Parameter -1 lautet, muss die Zeichenfolge null-terminated sein.

Wenn dwDTFormat- DT_MODIFYSTRING enthält, kann die Funktion dieser Zeichenfolge bis zu vier zusätzliche Zeichen hinzufügen. Der Puffer, der die Zeichenfolge enthält, sollte groß genug sein, um diese zusätzlichen Zeichen aufzunehmen.

[in] cchText

Die Länge der Zeichenfolge, auf die durch lpchTextverwiesen. Wenn cchText- -1 ist, wird davon ausgegangen, dass der lpchText- Parameter ein Zeiger auf eine mit Null beendete Zeichenfolge ist und DrawTextEx die Zeichenanzahl automatisch berechnet.

[in, out] lprc

Ein Zeiger auf eine RECT- Struktur, die das Rechteck enthält, in logischen Koordinaten, in dem der Text formatiert werden soll.

[in] format

Die Formatierungsoptionen. Dieser Parameter kann einen oder mehrere der folgenden Werte sein.

Wert Bedeutung
DT_BOTTOM
Rechtfertigt den Text am unteren Rand des Rechtecks. Dieser Wert wird nur mit dem wert DT_SINGLELINE verwendet.
DT_CALCRECT
Bestimmt die Breite und Höhe des Rechtecks. Wenn mehrere Textzeilen vorhanden sind, verwendet DrawTextEx die Breite des Rechtecks verwendet, auf das der lprc-Parameter verweist, und erweitert die Basis des Rechtecks, um die letzte Textzeile zu binden. Wenn nur eine Textzeile vorhanden ist, ändert DrawTextEx die rechte Seite des Rechtecks so, dass es das letzte Zeichen in der Zeile begrenzt. In beiden Fällen gibt DrawTextEx die Höhe des formatierten Texts zurück, zeichnet den Text jedoch nicht.
DT_CENTER
Zentriert Text horizontal im Rechteck.
DT_EDITCONTROL
Dupliziert die Textanzeigemerkmale eines mehrzeilen Bearbeitungssteuerelements. Insbesondere wird die durchschnittliche Zeichenbreite auf die gleiche Weise wie für ein Bearbeitungssteuerelement berechnet, und die Funktion zeigt keine teilweise sichtbare letzte Zeile an.
DT_END_ELLIPSIS
Bei angezeigtem Text ersetzt das Ende einer Zeichenfolge durch Auslassungspunkte, sodass das Ergebnis in das angegebene Rechteck passt. Jedes Wort (nicht am Ende der Zeichenfolge), das über die Grenzen des Rechtecks hinausgeht, wird ohne Auslassungspunkte abgeschnitten. Die Zeichenfolge wird nur geändert, wenn das DT_MODIFYSTRING Flag angegeben ist.

Vergleichen sie mit DT_PATH_ELLIPSIS und DT_WORD_ELLIPSIS.

DT_EXPANDTABS
Erweitert Tabstoppzeichen. Die Standardanzahl von Zeichen pro Registerkarte beträgt acht.
DT_EXTERNALLEADING
Enthält die Schriftart, die in der Zeilenhöhe von außen vorangestellter Zeichen ist. Normalerweise ist externe Vorleitung nicht in der Höhe einer Textzeile enthalten.
DT_HIDEPREFIX
Ignoriert das Präfixzeichen amper und (&) im Text. Der folgende Buchstabe wird nicht unterstrichen, aber andere Mnemonic-Präfixzeichen werden weiterhin verarbeitet.

Beispiel:

Eingabezeichenfolge: "A&bc&&d"

normal: "Abc&d"

DT_HIDEPREFIX: "Abc&d"

Vergleichen sie mit DT_NOPREFIX und DT_PREFIXONLY.

DT_INTERNAL
Verwendet die Systemschriftart zum Berechnen von Textmetriken.
DT_LEFT
Richtet Text links aus.
DT_MODIFYSTRING
Ändert die angegebene Zeichenfolge so, dass sie dem angezeigten Text entspricht. Dieser Wert hat keine Auswirkung, es sei denn, DT_END_ELLIPSIS oder DT_PATH_ELLIPSIS wird angegeben.
DT_NOCLIP
Zeichnet ohne Beschnitt. DrawTextEx- ist etwas schneller, wenn DT_NOCLIP verwendet wird.
DT_NOFULLWIDTHCHARBREAK
Verhindert einen Zeilenumbruch an einem DBCS (double-wide character string), sodass die Zeilenumbruchregel den SBCS-Zeichenfolgen entspricht. Dies kann beispielsweise in koreanischen Fenstern verwendet werden, um die Lesbarkeit von Symbolbeschriftungen zu verbessern. Dieser Wert hat keine Auswirkung, es sei denn, DT_WORDBREAK wird angegeben.
DT_NOPREFIX
Deaktiviert die Verarbeitung von Präfixzeichen. Normalerweise interpretiert DrawTextEx das kaufmännische Und-Zeichen (&) mnemonic-präfix als Direktive, um das folgende Zeichen zu unterstreichen, und das doppel-ampersand (&&) Mnemonic-Präfixzeichen als Direktive, um ein einzelnes kaufmännisches Und-Zeichen zu drucken. Durch Angabe DT_NOPREFIX wird diese Verarbeitung deaktiviert. Vergleichen mit DT_HIDEPREFIX und DT_PREFIXONLY
DT_PATH_ELLIPSIS
Bei angezeigtem Text werden Zeichen in der Mitte der Zeichenfolge durch Auslassungspunkte ersetzt, sodass das Ergebnis in das angegebene Rechteck passt. Wenn die Zeichenfolge umgekehrte Schrägstriche (\\) enthält, behält DT_PATH_ELLIPSIS den Text nach dem letzten umgekehrten Schrägstrich so weit wie möglich bei. Die Zeichenfolge wird nur geändert, wenn das DT_MODIFYSTRING Flag angegeben ist.

Vergleichen sie mit DT_END_ELLIPSIS und DT_WORD_ELLIPSIS.

DT_PREFIXONLY
Zeichnet nur eine Unterstreichung an der Position des Zeichens nach dem Kaufmännischen Und-Zeichen (&) Präfixzeichen. Zeichnet kein Zeichen in der Zeichenfolge.

Beispiel:

Eingabezeichenfolge: "A&bc&&d"

normal: "Abc&d"

PREFIXONLY: " _ "

Vergleichen sie mit DT_NOPREFIX und DT_HIDEPREFIX.

DT_RIGHT
Richtet Text rechts aus.
DT_RTLREADING
Layout in Leserichtung von rechts nach links für bidirektionalen Text, wenn die in der hdc- ausgewählte Schriftart eine hebräische oder arabische Schriftart ist. Die Standardlesereihenfolge für den gesamten Text ist von links nach rechts.
DT_SINGLELINE
Zeigt nur Text in einer einzelnen Zeile an. Wagenrücklauf und Zeilenfeeds unterbrechen die Linie nicht.
DT_TABSTOP
Legt Tabstopps fest. Die DRAWTEXTPARAMS- Struktur, auf die durch den lpDTParams Parameter verwiesen wird, gibt die Anzahl der durchschnittliche Zeichenbreiten pro Tabstopp an.
DT_TOP
Rechtfertigt den Text am oberen Rand des Rechtecks.
DT_VCENTER
Zentrierung von Text vertikal. Dieser Wert wird nur mit dem wert DT_SINGLELINE verwendet.
DT_WORDBREAK
Umbricht Wörter. Zeilen werden automatisch zwischen Wörtern gebrochen, wenn ein Wort über den Rand des durch den lprc Parameter angegebenen Rechtecks hinausgeht. Eine Wagenrücklaufzeilenvorschubsequenz bricht auch die Linie.
DT_WORD_ELLIPSIS
Schneidet alle Wörter ab, die nicht in das Rechteck passen, und fügt Auslassungspunkte hinzu.

Vergleichen sie mit DT_END_ELLIPSIS und DT_PATH_ELLIPSIS.

[in] lpdtp

Ein Zeiger auf eine DRAWTEXTPARAMS- Struktur, die zusätzliche Formatierungsoptionen angibt. Dieser Parameter kann NULL-sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Texthöhe in logischen Einheiten. Wenn DT_VCENTER oder DT_BOTTOM angegeben ist, ist der Rückgabewert der Offset von lprc->top bis zum Ende des gezeichneten Texts.

Wenn die Funktion fehlschlägt, ist der Rückgabewert null.

Bemerkungen

Die DrawTextEx--Funktion unterstützt nur Schriftarten, deren Escape- und Ausrichtung null sind.

Der Textausrichtungsmodus für den Gerätekontext muss die Kennzeichnungen TA_LEFT, TA_TOP und TA_NOUPDATECP enthalten.

Anmerkung

Der winuser.h-Header definiert DrawTextEx als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- winuser.h (enthalten Windows.h)
Library User32.lib
DLL- User32.dll
API-Satz ext-ms-win-ntuser-misc-l1-2-0 (eingeführt in Windows 8.1)

Siehe auch

DRAWTEXTPARAMS-

DrawText-

Schriftart- und Textfunktionen

Schriftarten und Textübersicht