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)

Confira também

DrvGetGlyphMode

DrvTextOut