DrawTextExW-Funktion (winuser.h)
Die DrawTextEx-Funktion zeichnet formatierten Text im angegebenen Rechteck.
Syntax
int DrawTextExW(
[in] HDC hdc,
[in, out] LPWSTR 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 ist, 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 lpchText verweist. Wenn cchText den Wert -1 aufweist, wird angenommen, dass der lpchText-Parameter ein Zeiger auf eine Zeichenfolge mit NULL-Beendigung ist, und DrawTextEx berechnet die Zeichenanzahl automatisch.
[in, out] lprc
Ein Zeiger auf eine RECT-Struktur , die das Rechteck in logischen Koordinaten enthält, in dem der Text formatiert werden soll.
[in] format
Die Formatierungsoptionen. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.
Wert | Bedeutung |
---|---|
|
Rechtfertigt den Text am unteren Rand des Rechtecks. Dieser Wert wird nur mit dem wert DT_SINGLELINE verwendet. |
|
Bestimmt die Breite und Höhe des Rechtecks. Wenn mehrere Textzeilen vorhanden sind, verwendet DrawTextEx die Breite des Rechtecks, 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, sodass das letzte Zeichen in der Zeile gebunden wird. In beiden Fällen gibt DrawTextEx die Höhe des formatierten Texts zurück, zeichnet den Text jedoch nicht. |
|
Zentriert Text horizontal im Rechteck. |
|
Dupliziert die Textanzeigeeigenschaften eines mehrlineigen 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. |
|
Ersetzt bei angezeigtem Text 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 flag DT_MODIFYSTRING angegeben ist.
Vergleichen Sie mit DT_PATH_ELLIPSIS und DT_WORD_ELLIPSIS. |
|
Erweitert Tabstoppzeichen. Die Standardanzahl von Zeichen pro Tabstopp beträgt acht. |
|
Schließt die externe Schriftartgröße in die Zeilenhöhe ein. Normalerweise ist externes Führendes nicht in der Höhe einer Textzeile enthalten. |
|
Ignoriert das Präfixzeichen ampersand (&) im Text. Der folgende Buchstabe wird nicht unterstrichen, aber andere mnemonische 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. |
|
Berechnet mit der Systemschriftart die Textmetrik. |
|
Richtet Text links aus. |
|
Ändert die angegebene Zeichenfolge so, dass sie mit dem angezeigten Text übereinstimmt. Dieser Wert hat keine Auswirkung, es sei denn, DT_END_ELLIPSIS oder DT_PATH_ELLIPSIS wird angegeben. |
|
Zeichnet ohne Beschneidung. DrawTextEx ist etwas schneller, wenn DT_NOCLIP verwendet wird. |
|
Verhindert einen Zeilenumbruch an einem DBCS (double-wide character string), sodass die Zeilentrennungsregel SBCS-Zeichenfolgen entspricht. Dies kann beispielsweise in koreanischen Fenstern verwendet werden, um die Lesbarkeit von Symbolbezeichnungen zu verbessern. Dieser Wert hat keine Auswirkung, es sei denn, es wird DT_WORDBREAK angegeben. |
|
Deaktiviert die Verarbeitung von Präfixzeichen. Normalerweise interpretiert DrawTextEx das mnemonische Präfixzeichen amper und (&) als Direktive, um das folgende Zeichen zu unterstreichen, und die mnemonischen Präfixzeichen (&&) als Direktive zum Drucken eines einzelnen Ampersands. Durch Angabe DT_NOPREFIX wird diese Verarbeitung deaktiviert. Vergleich mit DT_HIDEPREFIX und DT_PREFIXONLY |
|
Für angezeigten Text ersetzt Zeichen in der Mitte der Zeichenfolge durch Auslassungspunkte, 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 flag DT_MODIFYSTRING angegeben ist.
Vergleichen Sie mit DT_END_ELLIPSIS und DT_WORD_ELLIPSIS. |
|
Zeichnet nur eine Unterstreichung an der Position des Zeichens nach dem Präfixzeichen amper und (&). Zeichnet kein Zeichen in der Zeichenfolge.
Beispiel: Eingabezeichenfolge: "A&bc&&d" normal: "Abc&d" PREFIXONLY: " _ " Vergleichen Sie mit DT_NOPREFIX und DT_HIDEPREFIX. |
|
Richtet Text rechts aus. |
|
Layout in Leserichtung von rechts nach links für bidirektionalen Text, wenn die im hdc ausgewählte Schriftart eine hebräische oder arabische Schriftart ist. Die Standardlesereihenfolge für den gesamten Text ist von links nach rechts. |
|
Zeigt Text nur in einer einzelnen Zeile an. Wagenrückläufe und Zeilenfeeds unterbrechen die Linie nicht. |
|
Legt Tabstopps fest. Die DRAWTEXTPARAMS-Struktur , auf die der lpDTParams-Parameter verweist, gibt die Anzahl der durchschnittlichen Zeichenbreiten pro Tabstopp an. |
|
Rechtfertigt den Text am oberen Rand des Rechtecks. |
|
Zentriert Text vertikal. Dieser Wert wird nur mit dem wert DT_SINGLELINE verwendet. |
|
Unterbricht Wörter. Zeilen werden automatisch zwischen Wörtern unterbrochen, wenn sich ein Wort über den Rand des durch den lprc-Parameter angegebenen Rechtecks erstreckt. Eine Wagenrücklaufvorschubsequenz durchbricht die Zeile ebenfalls. |
|
Schneidet jedes Wort ab, das nicht in das Rechteck passt, 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 unteren Rand des gezeichneten Texts.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.
Hinweise
Die DrawTextEx-Funktion unterstützt nur Schriftarten, deren Escapement und Ausrichtung beide null sind.
Der Textausrichtungsmodus für den Gerätekontext muss die Flags TA_LEFT, TA_TOP und TA_NOUPDATECP enthalten.
Hinweis
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 |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h (windows.h einschließen) |
Bibliothek | User32.lib |
DLL | User32.dll |
APIs | ext-ms-win-ntuser-misc-l1-2-0 (eingeführt in Windows 8.1) |