Struttura STROBJ (winddi.h)

La classe STROBJ, o l'oggetto stringa di testo, contiene un'enumerazione di handle e posizioni del glifo per il driver di dispositivo.

Sintassi

typedef struct _STROBJ {
  ULONG    cGlyphs;
  FLONG    flAccel;
  ULONG    ulCharInc;
  RECTL    rclBkGround;
  GLYPHPOS *pgp;
  LPWSTR   pwszOrg;
} STROBJ;

Members

cGlyphs

Specifica il numero di glifi nello STROBJ.

flAccel

Flag di acceleratore. Questo membro può essere uno dei valori seguenti:

SO_BREAK_EXTRA

La spaziatura a larghezza fissa viene aggiunta a ogni carattere di interruzione.

SO_CHARACTER_EXTRA

La spaziatura a larghezza fissa viene aggiunta tra ogni coppia di glifi consecutivi.

SO_CHAR_INC_EQUAL_BM_BASE

La spaziatura è determinata dalle dimensioni delle bitmap. In questo contesto, la base bitmap è definita come cx per il case orizzontale, cy per maiuscole e minuscole verticali. Questo bit è impostato significa che ogni glifo in un tipo di carattere la bitmap (fornita nella struttura GLYPHBITS da GDI) avrà una base uguale alla larghezza di avanzamento per tale glifo. Ciò non significa che si tratta di un tipo di carattere a passo fisso. Non usato per PATHOBJs.

SO_DO_NOT_SUBSTITUTE_DEVICE_FONT

Un driver della stampante non deve sostituire uno dei tipi di carattere della stampante per la scelta del tipo di carattere GDI.

SO_DXDY

Il rendering dei glifi deve essere eseguito in posizioni casuali.

SO_ESC_NOT_ORIENT

L'orientamento di un glifo è diverso dalla direzione di escape. Escapement è l'angolo che la direzione del testo crea con l'oggetto orizzontale. L'orientamento è l'angolo tra la linea di base del glifo e la direzione di escape.

SO_FLAG_DEFAULT_PLACEMENT

I vettori di incremento predefiniti vengono usati per posizionare i caratteri.

SO_GLYPHINDEX_TEXTOUT

pwszOrg punta a una matrice di indici glifi anziché a una matrice Unicode.

SO_HORIZONTAL

Il testo è orizzontale; da sinistra a destra o da destra a sinistra, a seconda della SO_REVERSED. La coordinata y viene specificata solo per il primo glifo nella stringa.

SO_MAXEXT_EQUAL_BM_SIDE

Le bitmap hanno le stesse larghezze. In questo contesto, il lato bitmap è definito come cy per maiuscole e minuscole orizzontali e cx per maiuscole e minuscole verticali. Questo flag garantisce che tutti i glifi nel tipo di carattere abbiano lo stesso lato uguale alla somma di ascender e descender. Tuttavia, questo bit indica più di un semplice lato costante. Per il caso orizzontale, questo bit indica anche che la distanza verticale tra la parte superiore della bitmap del glifo e la relativa origine carattere è uguale all'ascendente per tutti i glifi. Per il caso verticale, questo bit indica che la distanza orizzontale tra l'origine del glifo e la "parte superiore" della bitmap del glifo (che è veramente destra o sinistra, a seconda che si stia scrivendo nella direzione dell'asse y positivo o negativo) sia uguale all'asse crescente. In entrambi i casi, le estremità superiore e inferiore di tutte le bitmap del glifo si trovano sulla stessa linea nella direzione della scrittura. Non usato per PATHOBJs.

SO_REVERSED

Impostare se orizzontale è da destra a sinistra o verticale è dall'alto verso l'alto.

SO_VERTICAL

Il testo è verticale; dall'alto verso il basso o dal basso verso l'alto, a seconda della SO_REVERSED. La coordinata x viene specificata solo per il primo glifo nella stringa.

SO_ZERO_BEARINGS

Tutti i glifi hanno zero spaziatura A e zero C. Questo bit garantisce che le caselle nere del glifo non si sovrappongano.

ulCharInc

Specifica se il tipo di carattere è un tipo di carattere a passo fisso (monospace). In caso affermativo, questo membro è uguale alla larghezza avanzata dei glifi in pels; in caso contrario, è zero. Quando questo membro è diverso da zero, GDI fornisce una coordinata valida solo per il primo carattere nella stringa. Tutte le altre posizioni dei caratteri devono essere generate dal driver aggiungendo successivamente il valore di questo membro lungo la direzione di scrittura.

rclBkGround

Specifica una struttura RECTL che descrive il rettangolo di selezione per la stringa.

pgp

Puntatore alla matrice GLYPHPOS per l'intera stringa. Può essere NULL (vedere la sezione Osservazioni seguente).

pwszOrg

Puntatore alla stringa Unicode originale o ai caratteri cGlyphs . Contrariamente al nome, questa stringa non è in genere con terminazione Null. Inoltre, questa stringa non è sempre valida, ad esempio nel journaling con tipi di carattere della stampante, nel qual caso questo parametro sarà NULL.

Commenti

Un driver può chiamare STROBJ_vEnumStart e STROBJ_bEnum per ottenere identità e posizioni di glifi nella stringa. Se pgp non è NULL, punta a una matrice GLYPHPOS che descrive l'intera stringa e è necessaria una sola chiamata a STROBJ_bEnum . Se pgp è NULL, STROBJ_bEnum dovrà essere chiamato ripetutamente in un ciclo per ottenere tutte le posizioni del glifo della stringa.

Requisiti

Requisito Valore
Intestazione winddi.h (include Winddi.h)

Vedi anche

DrvGetGlyphMode

DrvTextOut