Compartir a través de


Estructura EXTLOGPEN (wingdi.h)

La estructura EXTLOGPEN define los atributos de estilo de lápiz, ancho y pincel para un lápiz extendido. La función GetObject usa esta estructura cuando recupera una descripción de un lápiz que se creó cuando una aplicación llamó a la función ExtCreatePen .

Sintaxis

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

Miembros

elpPenStyle

Combinación de tipo de lápiz, estilo, estilo final y estilo de combinación. Los valores de cada categoría se pueden recuperar mediante un operador AND bit a bit con la máscara adecuada.

El miembro elpPenStyle enmascarado con PS_TYPE_MASK tiene uno de los siguientes valores de tipo de lápiz.

Valor Significado
PS_GEOMETRIC El lápiz es geométrico.
PS_COSMETIC El lápiz es cosmético.
 

El miembro elpPenStyle enmascarado con PS_STYLE_MASK tiene uno de los siguientes valores de estilos de lápiz:

Valor Significado
PS_DASH El lápiz está discontinuo.
PS_DASHDOT El lápiz tiene guiones y puntos alternativos.
PS_DASHDOTDOT El lápiz tiene guiones alternativos y puntos dobles.
PS_DOT El lápiz está punteado.
PS_INSIDEFRAME El lápiz es sólido. Cuando este lápiz se usa en cualquier función de dibujo GDI que toma un rectángulo delimitador, las dimensiones de la figura se reducen para que se ajuste completamente al rectángulo delimitador, teniendo en cuenta el ancho del lápiz. Esto solo se aplica a los lápices de PS_GEOMETRIC.
PS_NULL El lápiz es invisible.
PS_SOLID El lápiz es sólido.
PS_USERSTYLE El lápiz usa una matriz de estilos proporcionada por el usuario.
 

La categoría siguiente solo se aplica a los lápices de PS_GEOMETRIC. El miembro elpPenStyle enmascarado con PS_ENDCAP_MASK tiene uno de los siguientes valores de límite final.

Valor Significado
PS_ENDCAP_FLAT Los extremos de línea son planos.
PS_ENDCAP_ROUND Los límites de extremo de línea son redondos.
PS_ENDCAP_SQUARE Los extremos de línea son cuadrados.
 

La categoría siguiente solo se aplica a los lápices de PS_GEOMETRIC. El miembro elpPenStyle enmascarado con PS_JOIN_MASK tiene uno de los siguientes valores de combinación.

Valor Significado
PS_JOIN_BEVEL Las combinaciones de línea están biseladas.
PS_JOIN_MITER Las combinaciones de línea se miteran cuando se encuentran dentro del límite actual establecido por la función SetMiterLimit . Una combinación se bisela cuando superaría el límite.
PS_JOIN_ROUND Las combinaciones de línea son redondas.

elpWidth

Ancho del lápiz. Si el miembro elpPenStyle es PS_GEOMETRIC, este valor es el ancho de la línea en unidades lógicas. De lo contrario, las líneas son cosméticas y este valor es 1, lo que indica una línea con un ancho de un píxel.

elpBrushStyle

Estilo de pincel del lápiz. El valor del miembro elpBrushStyle puede ser uno de los siguientes.

Valor Significado
BS_DIBPATTERN Especifica un pincel de patrón definido por una especificación DIB. Si elpBrushStyle es BS_DIBPATTERN, el miembro elpHatch contiene un identificador para un DIB empaquetado. Para obtener más información, vea discusión en elpHatch.
BS_DIBPATTERNPT Especifica un pincel de patrón definido por una especificación DIB. Si elpBrushStyle es BS_DIBPATTERNPT, el miembro elpHatch contiene un puntero a un DIB empaquetado. Para obtener más información, vea discusión en elpHatch.
BS_HATCHED Especifica un pincel sombreado.
BS_HOLLOW Especifica un pincel vacío o NULL .
BS_PATTERN Especifica un pincel de patrón definido por un mapa de bits de memoria.
BS_SOLID Especifica un pincel sólido.

elpColor

Si elpBrushStyle es BS_SOLID o BS_HATCHED, elpColor especifica el color en el que se va a dibujar el lápiz. Para BS_HATCHED, las funciones SetBkMode y SetBkColor determinan el color de fondo.

Si elpBrushStyle es BS_HOLLOW o BS_PATTERN, se omite elpColor .

Si elpBrushStyle es BS_DIBPATTERN o BS_DIBPATTERNPT, la palabra de orden bajo de elpColor especifica si el miembro de la estructuraBITMAPINFO contiene valores RGB explícitos o índices en la paleta lógica realizada actualmente. El valor elpColor debe ser uno de los siguientes.

Valor Significado
DIB_PAL_COLORS La tabla de colores consta de una matriz de índices de 16 bits en la paleta lógica realizada actualmente.
DIB_RGB_COLORS La tabla de colores contiene valores RGB literales.
 

La macro RGB se usa para generar una estructura COLORREF .

elpHatch

Si elpBrushStyle es BS_PATTERN, elpHatch es un identificador del mapa de bits que define el patrón.

Si elpBrushStyle es BS_SOLID o BS_HOLLOW, se omite elpHatch .

Si elpBrushStyle es BS_DIBPATTERN, el miembro elpHatch es un identificador de un DIB empaquetado. Para obtener este identificador, una aplicación llama a la función GlobalAlloc con GMEM_MOVEABLE (o LocalAlloc con LMEM_MOVEABLE) para asignar un bloque de memoria y, a continuación, rellena la memoria con la DIB empaquetada. Una DIB empaquetada consta de una estructura BITMAPINFO seguida inmediatamente de la matriz de bytes que definen los píxeles del mapa de bits.

Si elpBrushStyle es BS_DIBPATTERNPT, el miembro elpHatch es un puntero a un DIB empaquetado. El puntero deriva del bloque de memoria creado por LocalAlloc con LMEM_FIXED establecido o por GlobalAlloc con GMEM_FIXED establecido, o es el puntero devuelto por una llamada como LocalLock (handle_to_the_dib). Una DIB empaquetada consta de una estructura BITMAPINFO inmediatamente seguida de la matriz de bytes que definen los píxeles del mapa de bits.

Si elpBrushStyle es BS_HATCHED, el miembro elpHatch especifica la orientación de las líneas usadas para crear el sombreado. Puede ser uno de los siguientes valores.

Value Significado
HS_BDIAGONAL Sombreado ascendente de 45 grados (de izquierda a derecha)
HS_CROSS Símbolo de número horizontal y vertical
HS_DIAGCROSS Bloqueo cruzado de 45 grados
HS_FDIAGONAL Sombreado descendente de 45 grados (de izquierda a derecha)
HS_HORIZONTAL Sombreado horizontal
HS_VERTICAL Sombreado vertical

elpNumEntries

Número de entradas de la matriz de estilo en el miembro elpStyleEntry . Este valor es cero si elpPenStyle no especifica PS_USERSTYLE.

elpStyleEntry[1]

Matriz de estilo proporcionada por el usuario. La matriz se especifica con una longitud finita, pero se usa como si se repitiera indefinidamente. La primera entrada de la matriz especifica la longitud del primer guión. La segunda entrada especifica la longitud de la primera brecha. A partir de entonces, las longitudes de guiones y espacios alternativos.

Si elpWidth especifica líneas geométricas, las longitudes están en unidades lógicas. De lo contrario, las líneas son cosméticas y las longitudes están en unidades de dispositivo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado wingdi.h (incluye Windows.h)

Consulte también

BITMAPINFO

COLORREF

ExtCreatePen

GetObject

Estructuras de lápiz

Información general sobre los lápices

RGB

SetBkColor

SetBkMode