Estrutura STROBJ (winddi.h)
A classe STROBJ, ou objeto de cadeia de caracteres de texto, contém uma enumeração de identificadores e posições de glifo para o driver de dispositivo.
Sintaxe
typedef struct _STROBJ {
ULONG cGlyphs;
FLONG flAccel;
ULONG ulCharInc;
RECTL rclBkGround;
GLYPHPOS *pgp;
LPWSTR pwszOrg;
} STROBJ;
Membros
cGlyphs
Especifica o número de glifos no STROBJ.
flAccel
Sinalizadores de acelerador. Esse membro pode ser qualquer um dos seguintes valores:
SO_BREAK_EXTRA
O espaçamento de largura fixa é adicionado a cada caractere de quebra.
SO_CHARACTER_EXTRA
O espaçamento de largura fixa é adicionado entre cada par de glifos consecutivos.
SO_CHAR_INC_EQUAL_BM_BASE
O espaçamento é determinado por tamanhos de bitmap. Nesse contexto, a base de bitmap é definida como cx para maiúsculas e minúsculas horizontais, cy para maiúsculas e minúsculas verticais. Esse bit é definido significa que cada glifo em uma fonte que o bitmap (fornecido na estrutura GLYPHBITS pela GDI) terá uma base igual à largura avançada desse glifo. Isso não significa que essa seja uma fonte de tom fixa. (Não usado para PATHOBJs.)
SO_DO_NOT_SUBSTITUTE_DEVICE_FONT
Um driver de impressora não deve substituir uma de suas fontes de impressora pela opção de fonte da GDI.
SO_DXDY
Os glifos devem ser renderizados em posições aleatórias.
SO_ESC_NOT_ORIENT
A orientação de um glifo é diferente da direção do escape. Escape é o ângulo que a direção do texto faz com o horizontal. Orientação é o ângulo entre a linha de base do glifo e a direção do escape.
SO_FLAG_DEFAULT_PLACEMENT
Os vetores de incremento padrão são usados para posicionar os caracteres.
SO_GLYPHINDEX_TEXTOUT
pwszOrg aponta para uma matriz de índices de glifo, em vez de uma matriz Unicode.
SO_HORIZONTAL
O texto é horizontal; da esquerda para a direita ou da direita para a esquerda, dependendo SO_REVERSED. A coordenada y só é fornecida para o primeiro glifo na cadeia de caracteres.
SO_MAXEXT_EQUAL_BM_SIDE
Bitmaps têm as mesmas larguras. Nesse contexto, o lado do bitmap é definido como cy para maiúsculas e minúsculas horizontais e cx para maiúsculas e minúsculas verticais. Esse sinalizador garante que todos os glifos na fonte terão o mesmo lado igual à soma de ascender e descendente. No entanto, esse bit indica mais do que apenas um lado constante. Para maiúsculas e minúsculas horizontais, esse bit também indica que a distância vertical entre a parte superior do bitmap do glifo e sua origem de caractere é igual ao ascendente para todos os glifos. Para maiúsculas e minúsculas, esse bit indica que a distância horizontal entre a origem do glifo e a "parte superior" do bitmap do glifo (que é realmente direita ou esquerda, dependendo se você está escrevendo na direção do eixo y positivo ou negativo) é igual ao ascendente. Em ambos os casos, as partes superiores e inferiores de todos os bitmaps de glifo ficam na mesma linha na direção da escrita. (Não usado para PATHOBJs.)
SO_REVERSED
Defina se horizontal é da direita para a esquerda ou vertical é de baixo para cima.
SO_VERTICAL
O texto é vertical; de cima para baixo ou de baixo para cima, dependendo de SO_REVERSED. A coordenada x só é fornecida para o primeiro glifo na cadeia de caracteres.
SO_ZERO_BEARINGS
Todos os glifos têm espaçamento A e zero C. Esse bit garante que as caixas pretas do glifo não se sobreponham.
ulCharInc
Especifica se a fonte é uma fonte de tom fixo (monospace). Se for, esse membro será igual à largura avançada dos glifos em pels; caso contrário, será zero. Quando esse membro é diferente de zero, a GDI fornece uma coordenada válida apenas para o primeiro caractere na cadeia de caracteres. Todas as outras posições de caractere devem ser geradas pelo driver adicionando sucessivamente o valor desse membro ao longo da direção de escrita.
rclBkGround
Especifica uma estrutura RECTL que descreve a caixa delimitadora da cadeia de caracteres.
pgp
Ponteiro para a matriz GLYPHPOS para toda a cadeia de caracteres. Pode ser NULL (consulte a seção Comentários a seguir).
pwszOrg
Ponteiro para a cadeia de caracteres Unicode original ou caracteres cGlyphs . Ao contrário do nome, essa cadeia de caracteres geralmente não é terminada em nulo. Além disso, essa cadeia de caracteres nem sempre é válida, como no registro em diário com fontes de impressora; nesse caso, esse parâmetro será NULL.
Comentários
Um driver pode chamar STROBJ_vEnumStart e STROBJ_bEnum para obter identidades e posições de glifos na cadeia de caracteres. Se pgp não for NULL, ele apontará para uma matriz GLYPHPOS que descreve toda a cadeia de caracteres e apenas uma única chamada para STROBJ_bEnum será necessária. Se pgp for NULL, STROBJ_bEnum precisará ser chamado repetidamente em um loop para obter todas as posições de glifo da cadeia de caracteres.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | winddi.h (inclua Winddi.h) |