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) |