Condividi tramite


Funzione GetTextExtentPoint32W (wingdi.h)

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

Sintassi

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

Parametri

[in] hdc

Handle per il contesto del dispositivo.

[in] lpString

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

[in] c

Lunghezza della stringa a cui punta 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.

Osservazioni

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

Poiché alcuni dispositivi sono caratteri di crenatura, la somma degli extent dei caratteri in una stringa potrebbe non essere uguale alla misura della stringa.

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

Quando si gestisce il 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 intercaracter o della giustificazione. Tuttavia, quando si stampa con EMF:

  • Il risultato di stampa ignora la spaziatura intercharacter, anche se GetTextExtentPoint32 prende in considerazione la spaziatura.
  • Il risultato di stampa tiene conto della giustificazione, anche se GetTextExtentPoint32 lo ignora.
Quando questa funzione restituisce l'extent di testo, presuppone che il testo sia orizzontale, ovvero che l'escape 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 carattere di escape diverso da zero, questa funzione non usa l'angolo mentre calcola l'extent 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 "\n" (nuova riga) o "\r\n" (ritorno a capo e nuova riga) quando calcola l'altezza di una stringa di testo.

Esempi

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 del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione wingdi.h (include Windows.h)
libreria Gdi32.lib
dll Gdi32.dll

Vedere anche

ExtTextOut

funzioni di tipo carattere e testo

panoramica tipi di carattere e testo

SIZE

SetTextCharacterExtra

SetTextJustification