GetTextExtentPoint32A-Funktion (wingdi.h)
Die GetTextExtentPoint32-Funktion berechnet die Breite und Höhe der angegebenen Textzeichenfolge.
Syntax
BOOL GetTextExtentPoint32A(
[in] HDC hdc,
[in] LPCSTR lpString,
[in] int c,
[out] LPSIZE psizl
);
Parameter
[in] hdc
Ein Handle für den Gerätekontext.
[in] lpString
Ein Zeiger auf einen Puffer, der die Textzeichenfolge angibt. Die Zeichenfolge muss nicht null-beendet sein, da der Parameter c die Länge der Zeichenfolge angibt.
[in] c
Die Länge der Zeichenfolge , auf die lpString verweist.
[out] psizl
Ein Zeiger auf eine SIZE-Struktur , die die Dimensionen der Zeichenfolge in logischen Einheiten empfängt.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.
Hinweise
Die GetTextExtentPoint32-Funktion verwendet die aktuell ausgewählte Schriftart, um die Dimensionen der Zeichenfolge zu berechnen. Die Breite und Höhe in logischen Einheiten werden ohne Berücksichtigung von Beschneidung berechnet.
Da einige Geräte Kernzeichen aufweisen, ist die Summe der Ausdehnungen der Zeichen in einer Zeichenfolge möglicherweise nicht gleich der Ausdehnung der Zeichenfolge.
Die berechnete Zeichenfolgenbreite berücksichtigt den Interzeichenabstand, der von der SetTextCharacterExtra-Funktion festgelegt ist, und die von SetTextJustification festgelegte Begründung. Dies gilt sowohl für die Anzeige auf einem Bildschirm als auch für das Drucken. Wenn lpDx jedoch in ExtTextOut festgelegt ist, berücksichtigt GetTextExtentPoint32 weder den Interzeichenabstand noch die Begründung. Darüber hinaus berücksichtigt das Druckergebnis bei EMF immer sowohl den Zwischenzeichenabstand als auch die Begründung.
Beim Umgang mit text, der auf einem Bildschirm angezeigt wird, berücksichtigt die berechnete Zeichenfolgenbreite den Interzeichenabstand, der von der SetTextCharacterExtra-Funktion festgelegt wurde, und die von SetTextJustification festgelegte Begründung. Wenn lpDx jedoch in ExtTextOut festgelegt ist, berücksichtigt GetTextExtentPoint32 weder den Interzeichenabstand noch die Begründung. Beim Drucken mit EMF:
- Das Druckergebnis ignoriert den Interzeichenabstand, obwohl getTextExtentPoint32 dies berücksichtigt.
- Das Druckergebnis berücksichtigt die Begründung, obwohl GetTextExtentPoint32 es ignoriert.
GetTextExtentPoint32 berücksichtigt keine Zeichen "\n" (neue Zeile) oder "\r\n" (Wagenrücklauf und neue Zeile), wenn die Höhe einer Textzeichenfolge berechnet wird.
Beispiele
Ein Beispiel finden Sie unter Zeichnen von Text aus unterschiedlichen Schriftarten in derselben Zeile.
Hinweis
Der wingdi.h-Header definiert GetTextExtentPoint32 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 nicht codierungsneutralem Code 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 | wingdi.h (einschließlich Windows.h) |
Bibliothek | Gdi32.lib |
DLL | Gdi32.dll |
Weitere Informationen
Schriftart- und Textfunktionen