Condividi tramite


Funzione DrawTextExA (winuser.h)

La funzione DrawTextEx disegna testo formattato nel rettangolo specificato.

Sintassi

int DrawTextExA(
  [in]      HDC              hdc,
  [in, out] LPSTR            lpchText,
  [in]      int              cchText,
  [in, out] LPRECT           lprc,
  [in]      UINT             format,
  [in]      LPDRAWTEXTPARAMS lpdtp
);

Parametri

[in] hdc

Handle per il contesto del dispositivo in cui disegnare.

[in, out] lpchText

Puntatore alla stringa contenente il testo da disegnare. Se il parametro cchText è -1, la stringa deve essere con terminazione Null.

Se dwDTFormat include DT_MODIFYSTRING, la funzione potrebbe aggiungere fino a quattro caratteri aggiuntivi a questa stringa. Il buffer contenente la stringa deve essere sufficientemente grande per contenere questi caratteri aggiuntivi.

[in] cchText

Lunghezza della stringa a cui punta lpchText. Se cchText è -1, si presuppone che il parametro lpchText sia un puntatore a una stringa con terminazione Null e DrawTextEx calcola automaticamente il conteggio dei caratteri.

[in, out] lprc

Puntatore a una struttura RECT che contiene il rettangolo, in coordinate logiche, in cui deve essere formattato il testo.

[in] format

Opzioni di formattazione. Questo parametro può essere uno o più dei valori seguenti.

Valore Significato
DT_BOTTOM
Giustifica il testo nella parte inferiore del rettangolo. Questo valore viene usato solo con il valore DT_SINGLELINE.
DT_CALCRECT
Determina la larghezza e l'altezza del rettangolo. Se sono presenti più righe di testo, DrawTextEx utilizza la larghezza del rettangolo a cui punta il parametro lprc ed estende la base del rettangolo al limite dell'ultima riga di testo. Se è presente una sola riga di testo, DrawTextEx modifica il lato destro del rettangolo in modo che limiti l'ultimo carattere nella riga. In entrambi i casi, DrawTextEx restituisce l'altezza del testo formattato, ma non disegna il testo.
DT_CENTER
Centra il testo orizzontalmente nel rettangolo.
DT_EDITCONTROL
Duplica le caratteristiche di visualizzazione del testo di un controllo di modifica su più righe. In particolare, la larghezza media dei caratteri viene calcolata nello stesso modo di un controllo di modifica e la funzione non visualizza un'ultima riga parzialmente visibile.
DT_END_ELLIPSIS
Per il testo visualizzato, sostituisce la fine di una stringa con puntini di sospensione in modo che il risultato si adatti al rettangolo specificato. Qualsiasi parola (non alla fine della stringa) che supera i limiti del rettangolo viene troncata senza puntini di sospensione. La stringa non viene modificata a meno che non venga specificato il flag DT_MODIFYSTRING.

Confrontare con DT_PATH_ELLIPSIS e DT_WORD_ELLIPSIS.

DT_EXPANDTABS
Espande i caratteri di tabulazioni. Il numero predefinito di caratteri per scheda è otto.
DT_EXTERNALLEADING
Include il tipo di carattere esterno all'altezza della riga. In genere, l'inizio esterno non è incluso nell'altezza di una riga di testo.
DT_HIDEPREFIX
Ignora il carattere prefisso e commerciale (&) nel testo. La lettera che segue non verrà sottolineata, ma vengono comunque elaborati altri caratteri di prefisso mnemonico.

Esempio:

stringa di input: "A&bc&&d"

normal: "Abc&d"

DT_HIDEPREFIX: "Abc&d"

Confrontare con DT_NOPREFIX e DT_PREFIXONLY.

DT_INTERNAL
Usa il tipo di carattere di sistema per calcolare le metriche di testo.
DT_LEFT
Allinea il testo a sinistra.
DT_MODIFYSTRING
Modifica la stringa specificata in modo che corrisponda al testo visualizzato. Questo valore non ha alcun effetto a meno che non venga specificato DT_END_ELLIPSIS o DT_PATH_ELLIPSIS.
DT_NOCLIP
Disegna senza ritagliare. DrawTextEx è un po' più veloce quando si utilizza DT_NOCLIP.
DT_NOFULLWIDTHCHARBREAK
Impedisce un'interruzione di riga in un DBCS (stringa di caratteri a doppio larghezza), in modo che la regola di interruzione della riga sia equivalente alle stringhe SBCS. Ad esempio, questa opzione può essere usata nelle finestre coreane per una maggiore leggibilità delle etichette delle icone. Questo valore non ha alcun effetto a meno che non venga specificato DT_WORDBREAK.
DT_NOPREFIX
Disattiva l'elaborazione dei caratteri di prefisso. In genere, DrawTextEx interpreta il carattere mnemonic-prefix (&) come direttiva per evidenziare il carattere che segue e i caratteri a doppia e commerciale (&&) come direttiva per stampare una singola e commerciale. Specificando DT_NOPREFIX, questa elaborazione viene disattivata. Confrontare con DT_HIDEPREFIX e DT_PREFIXONLY
DT_PATH_ELLIPSIS
Per il testo visualizzato, sostituisce i caratteri al centro della stringa con puntini di sospensione in modo che il risultato si adatti al rettangolo specificato. Se la stringa contiene caratteri barra rovesciata (\\), DT_PATH_ELLIPSIS mantiene il più possibile il testo dopo l'ultima barra rovesciata. La stringa non viene modificata a meno che non venga specificato il flag DT_MODIFYSTRING.

Confrontare con DT_END_ELLIPSIS e DT_WORD_ELLIPSIS.

DT_PREFIXONLY
Disegna solo una sottolineatura nella posizione del carattere che segue il carattere di prefisso e commerciale (&). Non disegna alcun carattere nella stringa.

Esempio:

stringa di input: "A&bc&&d"

normal: "Abc&d"

PREFIXONLY: " _ "

Confrontare con DT_NOPREFIX e DT_HIDEPREFIX.

DT_RIGHT
Allinea il testo a destra.
DT_RTLREADING
Layout in ordine di lettura da destra a sinistra per il testo bidirezionale quando il tipo di carattere selezionato nel hdc è un tipo di carattere ebraico o arabo. L'ordine di lettura predefinito per tutto il testo è da sinistra a destra.
DT_SINGLELINE
Visualizza il testo solo su una singola riga. I ritorni a capo e i feed di riga non interrompono la riga.
DT_TABSTOP
Imposta tabulazioni. La struttura DRAWTEXTPARAMS a cui punta il parametro lpDTParams specifica il numero di larghezze medie dei caratteri per tabulazione.
DT_TOP
Giustifica il testo nella parte superiore del rettangolo.
DT_VCENTER
Centra il testo verticalmente. Questo valore viene usato solo con il valore DT_SINGLELINE.
DT_WORDBREAK
Interrompe le parole. Le righe vengono interrotte automaticamente tra le parole se una parola si estende oltre il bordo del rettangolo specificato dal parametro lprc. Una sequenza di avanzamento ritorno a capo interrompe anche la riga.
DT_WORD_ELLIPSIS
Tronca qualsiasi parola che non rientra nel rettangolo e aggiunge puntini di sospensione.

Confrontare con DT_END_ELLIPSIS e DT_PATH_ELLIPSIS.

[in] lpdtp

Puntatore a una struttura DRAWTEXTPARAMS che specifica opzioni di formattazione aggiuntive. Questo parametro può essere NULL.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è l'altezza del testo in unità logiche. Se si specifica DT_VCENTER o DT_BOTTOM, il valore restituito è l'offset da lprc->top alla fine del testo disegnato

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

Osservazioni

La funzione DrawTextEx supporta solo i tipi di carattere i cui caratteri di escape e orientamento sono entrambi zero.

La modalità di allineamento del testo per il contesto di dispositivo deve includere i flag TA_LEFT, TA_TOP e TA_NOUPDATECP.

Nota

L'intestazione winuser.h definisce DrawTextEx 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 winuser.h (include Windows.h)
libreria User32.lib
dll User32.dll
set di API ext-ms-win-ntuser-misc-l1-2-0 (introdotto in Windows 8.1)

Vedere anche

DRAWTEXTPARAMS

DrawText

funzioni di tipo carattere e testo

panoramica tipi di carattere e testo