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.
Wenn diese Funktion den Textumfang zurückgibt, wird davon ausgegangen, dass der Text horizontal ist, d. h., dass die Escape immer 0 ist. Dies gilt sowohl für die horizontalen als auch für die vertikalen Messungen des Texts. Auch wenn Sie eine Schriftart verwenden, die eine nonzero-Escape angibt, verwendet diese Funktion nicht den Winkel, während sie die Textausdehnung berechnet. Die App muss sie explizit konvertieren. Wenn der Grafikmodus jedoch auf GM_ADVANCED festgelegt ist und die Zeichenausrichtung 90 Grad von der Druckausrichtung entfernt ist, entsprechen die von dieser Funktion zurückgegebenen Werte dieser Regel nicht. Wenn die Zeichenausrichtung und die Druckausrichtung für eine bestimmte Zeichenfolge übereinstimmen, gibt diese Funktion die Dimensionen der Zeichenfolge in der SIZE-Struktur als { cx : 116, cy : 18 }zurück. Wenn die Zeichenausrichtung und die Druckausrichtung für dieselbe Zeichenfolge 90 Grad voneinander entfernt sind, gibt diese Funktion die Dimensionen der Zeichenfolge in der SIZE-Struktur als { cx : 18, cy : 116 } zurück.

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

ExtTextOut

Schriftart- und Textfunktionen

Übersicht über Schriftarten und Text

SIZE

SetTextCharacterExtra

SetTextJustification