Funzione GetTextExtentPoint32A (wingdi.h)

La funzione GetTextExtentPoint32 calcola la larghezza e l'altezza della stringa specificata di testo.

Sintassi

BOOL GetTextExtentPoint32A(
  [in]  HDC    hdc,
  [in]  LPCSTR lpString,
  [in]  int    c,
  [out] LPSIZE psizl
);

Parametri

[in] hdc

Handle nel contesto del dispositivo.

[in] lpString

Puntatore a un buffer che specifica la stringa di testo. La stringa non deve essere terminata con valore Null, perché il parametro c specifica la lunghezza della stringa.

[in] c

Lunghezza della stringa puntata da lpString.

[out] psizl

Puntatore a una struttura SIZE che riceve le dimensioni della stringa, in unità logiche.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero.

Commenti

La funzione GetTextExtentPoint32 usa il tipo di carattere attualmente selezionato per calcolare le dimensioni della stringa. La larghezza e l'altezza, nelle unità logiche, vengono calcolate senza considerare alcun ritaglio.

Poiché alcuni dispositivi kern caratteri, la somma degli extent dei caratteri in una stringa potrebbe non essere uguale all'estensione della stringa.

La larghezza della stringa calcolata tiene conto della spaziatura intercharacter impostata dalla funzione SetTextCharacterExtra e della giustificazione impostata da SetTextJustification. Questo vale sia per la visualizzazione su uno schermo che per la stampa. Tuttavia, se lpDx è impostato in ExtTextOut, GetTextExtentPoint32 non tiene conto della spaziatura o della giustificazione intercharacter. Inoltre, per EMF, il risultato della stampa accetta sempre la spaziatura intercharacter e la giustificazione in considerazione.

Quando si tratta del testo visualizzato su una schermata, la larghezza della stringa calcolata tiene conto della spaziatura intercharacter impostata dalla funzione SetTextCharacterExtra e la giustificazione impostata da SetTextJustification. Tuttavia, se lpDx è impostato in ExtTextOut, GetTextExtentPoint32 non tiene conto della spaziatura o della giustificazione intercharacter. Tuttavia, quando si stampa con EMF:

  • Il risultato della stampa ignora la spaziatura intercharacter, anche se GetTextExtentPoint32 lo tiene conto.
  • Il risultato della stampa tiene conto della giustificazione, anche se GetTextExtentPoint32 lo ignora.
Quando questa funzione restituisce l'estensione di testo, presuppone che il testo sia orizzontale, ovvero che l'escapement sia sempre 0. Questo vale sia per le misurazioni orizzontali che verticali del testo. Anche se si usa un tipo di carattere che specifica un escape non zero, questa funzione non usa l'angolo mentre calcola l'estensione di testo. L'app deve convertirla in modo esplicito. Tuttavia, quando la modalità grafica è impostata su GM_ADVANCED e l'orientamento del carattere è di 90 gradi dall'orientamento di stampa, i valori restituiti da questa funzione non seguono questa regola. Quando l'orientamento del carattere e l'orientamento di stampa corrispondono a una determinata stringa, questa funzione restituisce le dimensioni della stringa nella struttura SIZE come { cx : 116, cy : 18 }. Quando l'orientamento dei caratteri e l'orientamento di stampa sono di 90 gradi per la stessa stringa, questa funzione restituisce le dimensioni della stringa nella struttura SIZE come { cx : 18, cy : 116 }.

GetTextExtentPoint32 non considera i caratteri "\n" (nuova riga) o "\r\n" (ritorno a capo e nuova riga) quando calcola l'altezza di una stringa di testo.

Esempio

Per un esempio, vedere Disegno di testo da tipi di carattere diversi nella stessa riga.

Nota

L'intestazione wingdi.h definisce GetTextExtentPoint32 come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wingdi.h (include Windows.h)
Libreria Gdi32.lib
DLL Gdi32.dll

Vedi anche

Exttextout

Funzioni carattere e testo

Panoramica dei tipi di carattere e del testo

SIZE

SetTextCharacterExtra

SetTextJustification