Funzione ExtTextOutA (wingdi.h)
La funzione ExtTextOut disegna testo usando il tipo di carattere, il colore di sfondo e il colore di testo attualmente selezionati. Facoltativamente, è possibile specificare le dimensioni da utilizzare per ritagliare, opaquing o entrambi.
Sintassi
BOOL ExtTextOutA(
[in] HDC hdc,
[in] int x,
[in] int y,
[in] UINT options,
[in] const RECT *lprect,
[in] LPCSTR lpString,
[in] UINT c,
[in] const INT *lpDx
);
Parametri
[in] hdc
Handle nel contesto del dispositivo.
[in] x
Coordinata x, nelle coordinate logiche, del punto di riferimento usato per posizionare la stringa.
[in] y
Coordinata y, in coordinate logiche, del punto di riferimento usato per posizionare la stringa.
[in] options
Specifica come usare il rettangolo definito dall'applicazione. Questo parametro può essere uno o più dei valori seguenti.
Valore | Significato |
---|---|
|
Il testo verrà ritagliato sul rettangolo. |
|
La matrice lpString fa riferimento a una matrice restituita da GetCharacterPlacement e deve essere analizzata direttamente da GDI perché non è necessaria alcuna ulteriore elaborazione specifica del linguaggio. L'indicizzazione del glifo si applica solo ai tipi di carattere TrueType, ma il flag può essere usato per i tipi di carattere bitmap e vettore per indicare che non è necessaria alcuna ulteriore elaborazione del linguaggio e GDI deve elaborare direttamente la stringa. Si noti che tutti gli indici glifi sono valori a 16 bit anche se la stringa viene considerata una matrice di valori a 8 bit per i tipi di carattere raster.
Per ExtTextOutW, gli indici glifi vengono salvati in un metafile. Tuttavia, per visualizzare i caratteri corretti, il metafile deve essere riprodotto usando lo stesso tipo di carattere. Per ExtTextOutA, gli indici glifi non vengono salvati. |
|
Riservato per l'utilizzo nel sistema. Se un'applicazione imposta questo flag, perde il supporto di scripting internazionale e in alcuni casi potrebbe non visualizzare alcun testo. |
|
Per visualizzare i numeri, usare cifre europee. |
|
Per visualizzare i numeri, usare le cifre appropriate per le impostazioni locali. |
|
Il colore di sfondo corrente deve essere usato per riempire il rettangolo. |
|
Quando viene impostato, la matrice puntata da lpDx contiene coppie di valori. Il primo valore di ogni coppia è, come di consueto, la distanza tra le origini delle celle di caratteri adiacenti, ma il secondo valore è lo spostamento lungo la direzione verticale del carattere. |
|
Edizione del linguaggio Middle East di Windows: Se questo valore viene specificato e viene selezionato un carattere ebraico o arabo nel contesto del dispositivo, la stringa viene restituita usando l'ordine di lettura da destra a sinistra. Se questo valore non è specificato, la stringa viene restituita in ordine sinistro a destra. Lo stesso effetto può essere ottenuto impostando il valore TA_RTLREADING in SetTextAlign. Questo valore viene mantenuto per la compatibilità con le versioni precedenti. |
I valori ETO_GLYPH_INDEX e ETO_RTLREADING non possono essere usati insieme. Poiché ETO_GLYPH_INDEX implica che tutte le elaborazioni del linguaggio siano state completate, la funzione ignora il flag di ETO_RTLREADING se specificato.
[in] lprect
Puntatore a una struttura RECT facoltativa che specifica le dimensioni, nelle coordinate logiche, di un rettangolo utilizzato per ritagliare, opaquing o entrambi.
[in] lpString
Puntatore a una stringa che specifica il testo da disegnare. La stringa non deve essere terminata zero, poiché cbCount specifica la lunghezza della stringa.
[in] c
Lunghezza della stringa puntata da lpString.
Questo valore potrebbe non superare il 8192.
[in] lpDx
Puntatore a una matrice facoltativa di valori che indicano la distanza tra le origini delle celle di caratteri adiacenti. Ad esempio, le unità logiche lpDx[i] separano le origini della cella carattere i e della cella carattere i + 1.
Valore restituito
Se la stringa viene disegnata, il valore restituito è diverso da zero. Tuttavia, se la versione ANSI di ExtTextOut viene chiamata con ETO_GLYPH_INDEX, la funzione restituisce TRUE anche se la funzione non esegue alcuna operazione.
Se la funzione ha esito negativo, il valore restituito è zero.
Commenti
Le impostazioni di allineamento del testo correnti per il contesto del dispositivo specificato determinano come viene usato il punto di riferimento per posizionare il testo. Le impostazioni di allineamento del testo vengono recuperate chiamando la funzione GetTextAlign . Le impostazioni di allineamento del testo vengono modificate chiamando la funzione SetTextAlign . È possibile usare i valori seguenti per l'allineamento del testo. È possibile scegliere un solo flag da quelli che influiscono sull'allineamento orizzontale e verticale. Inoltre, è possibile scegliere solo uno dei due flag che modificano la posizione corrente.
Se il parametro lpDx è NULL, la funzione ExtTextOut usa la spaziatura predefinita tra i caratteri. Le origini della cella di caratteri e il contenuto della matrice a cui punta il parametro lpDx vengono specificati nelle unità logiche. Un'origine della cella di caratteri è definita come angolo superiore sinistro della cella di caratteri.
Per impostazione predefinita, la posizione corrente non viene usata o aggiornata da questa funzione. Tuttavia, un'applicazione può chiamare la funzione SetTextAlign con il parametro fMode impostato su TA_UPDATECP per consentire al sistema di usare e aggiornare la posizione corrente ogni volta che l'applicazione chiama ExtTextOut per un contesto di dispositivo specificato. Quando questo flag è impostato, il sistema ignora i parametri X e Y nelle chiamate ExtTextOut successive.
Per la versione ANSI di ExtTextOut, la matrice lpDx ha lo stesso numero di valori INT presenti in lpString. Per i caratteri DBCS, è possibile suddividere il dx nelle voci lpDx tra il byte lead e il byte finale, purché la somma dei due byte venga aggiunta fino al dx desiderato. Per i caratteri DBCS con la versione Unicode di ExtTextOut, ogni glifo Unicode ottiene una singola voce pdx .
Nota, i valori alpDx di GetTextExtentExPoint non sono uguali ai valori lpDx per ExtTextOut. Per usare i valori alpDx in lpDx, è prima necessario elaborarli.
ExtTextOut userà Uniscribe quando necessario, causando il fallback del tipo di carattere. Il flag ETO_IGNORELANGUAGE inibirà questo comportamento e non deve essere passato.
Inoltre, ExtTextOut eseguirà il batch interno delle chiamate prima della transizione alla modalità kernel, attenuando alcuni dei problemi di prestazioni quando si pesa l'utilizzo di PolyTextOut rispetto a ExtTextOut.
Suggerimento
ExtTextOut è fortemente consigliato su PolyTextOut per lo sviluppo moderno grazie alla capacità di gestire la visualizzazione di linguaggi diversi.
Esempio
Per un esempio, vedere "Impostazione dei tipi di carattere per Menu-Item stringhe di testo" in Uso dei menu.
Nota
L'intestazione wingdi.h definisce ExtTextOut 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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
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
Funzioni per tipi di carattere e testo