Estrutura EXTLOGPEN (wingdi.h)

A estrutura EXTLOGPEN define os atributos de estilo, largura e pincel da caneta para uma caneta estendida. Essa estrutura é usada pela função GetObject quando recupera uma descrição de uma caneta que foi criada quando um aplicativo chamou a função ExtCreatePen .

Sintaxe

typedef struct tagEXTLOGPEN {
  DWORD     elpPenStyle;
  DWORD     elpWidth;
  UINT      elpBrushStyle;
  COLORREF  elpColor;
  ULONG_PTR elpHatch;
  DWORD     elpNumEntries;
  DWORD     elpStyleEntry[1];
} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;

Membros

elpPenStyle

Uma combinação de tipo de caneta, estilo, estilo de tampa final e estilo de junção. Os valores de cada categoria podem ser recuperados usando um operador AND bit a bit com a máscara apropriada.

O membro elpPenStyle mascarado com PS_TYPE_MASK tem um dos seguintes valores de tipo de caneta.

Valor Significado
PS_GEOMETRIC A caneta é geométrica.
PS_COSMETIC A caneta é cosmética.
 

O membro elpPenStyle mascarado com PS_STYLE_MASK tem um dos seguintes valores de estilos de caneta:

Valor Significado
PS_DASH A caneta está tracejada.
PS_DASHDOT A caneta tem traços e pontos alternados.
PS_DASHDOTDOT A caneta tem traços alternados e pontos duplos.
PS_DOT A caneta está pontilhada.
PS_INSIDEFRAME A caneta é sólida. Quando essa caneta é usada em qualquer função de desenho GDI que usa um retângulo delimitador, as dimensões da figura são reduzidas para que ela se encaixe inteiramente no retângulo delimitador, levando em conta a largura da caneta. Isso se aplica apenas a PS_GEOMETRIC canetas.
PS_NULL A caneta é invisível.
PS_SOLID A caneta é sólida.
PS_USERSTYLE A caneta usa uma matriz de estilo fornecida pelo usuário.
 

A categoria a seguir aplica-se somente a canetas PS_GEOMETRIC. O membro elpPenStyle mascarado com PS_ENDCAP_MASK tem um dos seguintes valores de limite final.

Valor Significado
PS_ENDCAP_FLAT As tampas de extremidade de linha são planas.
PS_ENDCAP_ROUND As tampas finais da linha são redondas.
PS_ENDCAP_SQUARE As tampas de extremidade da linha são quadradas.
 

A categoria a seguir aplica-se somente a canetas PS_GEOMETRIC. O membro elpPenStyle mascarado com PS_JOIN_MASK tem um dos seguintes valores de junção.

Valor Significado
PS_JOIN_BEVEL As junções de linha são biseladas.
PS_JOIN_MITER As junções de linha são miteradas quando estão dentro do limite atual definido pela função SetMiterLimit . Uma junção é biselada quando excederia o limite.
PS_JOIN_ROUND As junções de linha são redondas.

elpWidth

A largura da caneta. Se o membro elpPenStyle for PS_GEOMETRIC, esse valor será a largura da linha em unidades lógicas. Caso contrário, as linhas são cosméticas e esse valor é 1, o que indica uma linha com uma largura de um pixel.

elpBrushStyle

O estilo de pincel da caneta. O valor do membro elpBrushStyle pode ser um dos seguintes.

Valor Significado
BS_DIBPATTERN Especifica um pincel de padrão definido por uma especificação DIB. Se elpBrushStyle for BS_DIBPATTERN, o membro elpHatch conterá um identificador para um DIB empacotado. Para obter mais informações, consulte discussão em elpHatch
BS_DIBPATTERNPT Especifica um pincel de padrão definido por uma especificação DIB. Se elpBrushStyle for BS_DIBPATTERNPT, o membro elpHatch conterá um ponteiro para um DIB empacotado. Para obter mais informações, consulte discussão em elpHatch.
BS_HATCHED Especifica um pincel de hachura.
BS_HOLLOW Especifica um pincel oco ou NULL .
BS_PATTERN Especifica um pincel de padrão definido por um bitmap de memória.
BS_SOLID Especifica um pincel sólido.

elpColor

Se elpBrushStyle for BS_SOLID ou BS_HATCHED, elpColor especificará a cor na qual a caneta deve ser desenhada. Para BS_HATCHED, as funções SetBkMode e SetBkColor determinam a cor da tela de fundo.

Se elpBrushStyle for BS_HOLLOW ou BS_PATTERN, elpColor será ignorado.

Se elpBrushStyle for BS_DIBPATTERN ou BS_DIBPATTERNPT, a palavra de ordem baixa de elpColor especifica se o membro bmiColors da estrutura BITMAPINFO contém valores RGB explícitos ou índices na paleta lógica atualmente realizada. O valor elpColor deve ser um dos seguintes.

Valor Significado
DIB_PAL_COLORS A tabela de cores consiste em uma matriz de índices de 16 bits na paleta lógica atualmente realizada.
DIB_RGB_COLORS A tabela de cores contém valores RGB literais.
 

A macro RGB é usada para gerar uma estrutura COLORREF .

elpHatch

Se elpBrushStyle for BS_PATTERN, elpHatch será um identificador para o bitmap que define o padrão.

Se elpBrushStyle for BS_SOLID ou BS_HOLLOW, elpHatch será ignorado.

Se elpBrushStyle for BS_DIBPATTERN, o membro elpHatch será um identificador para um DIB empacotado. Para obter esse identificador, um aplicativo chama a função GlobalAlloc com GMEM_MOVEABLE (ou LocalAlloc com LMEM_MOVEABLE) para alocar um bloco de memória e preenche a memória com o DIB empacotado. Um DIB empacotado consiste em uma estrutura BITMAPINFO imediatamente seguida pela matriz de bytes que definem os pixels do bitmap.

Se elpBrushStyle for BS_DIBPATTERNPT, o membro elpHatch será um ponteiro para um DIB empacotado. O ponteiro deriva do bloco de memória criado por LocalAlloc com LMEM_FIXED definido ou por GlobalAlloc com GMEM_FIXED definido ou é o ponteiro retornado por uma chamada como LocalLock (handle_to_the_dib). Um DIB empacotado consiste em uma estrutura BITMAPINFO imediatamente seguida pela matriz de bytes que definem os pixels do bitmap.

Se elpBrushStyle for BS_HATCHED, o membro elpHatch especificará a orientação das linhas usadas para criar a hachura. Pode ser um dos seguintes valores.

Valor Significado
HS_BDIAGONAL Hachura ascendente de 45 graus (da esquerda para a direita)
HS_CROSS Hachura cruzada horizontal e vertical
HS_DIAGCROSS Crosshatch de 45 graus
HS_FDIAGONAL Hachura descendente de 45 graus (da esquerda para a direita)
HS_HORIZONTAL Hachura horizontal
HS_VERTICAL Hachura vertical

elpNumEntries

O número de entradas na matriz de estilo no membro elpStyleEntry . Esse valor será zero se elpPenStyle não especificar PS_USERSTYLE.

elpStyleEntry[1]

Uma matriz de estilo fornecida pelo usuário. A matriz é especificada com um comprimento finito, mas é usada como se fosse repetida indefinidamente. A primeira entrada na matriz especifica o comprimento do primeiro traço. A segunda entrada especifica o comprimento da primeira lacuna. Depois disso, comprimentos de traços e lacunas são alternativos.

Se elpWidth especificar linhas geométricas, os comprimentos estarão em unidades lógicas. Caso contrário, as linhas são cosméticas e os comprimentos estão em unidades de dispositivo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho wingdi.h (inclua Windows.h)

Confira também

BITMAPINFO

COLORREF

ExtCreatePen

Getobject

Estruturas de caneta

Visão geral das canetas

RGB

Setbkcolor

Setbkmode