Estructura EXTLOGPEN
Definición
typedef struct tagEXTLOGPEN { // exlp UINT elpPenStyle; UINT elpWidth; UINT elpBrushStyle; COLORREF elpColor; LONG elpHatch; DWORD elpNumEntries; DWORD elpStyleEntry[1]; } EXTLOGPEN;
La estructura EXTLOGPEN define el estilo, ancho y atributos de pincel para una pluma extendida. Esta estructura se usa por la función GetObject cuando recupera una descripción de una pluma que fue creada por una aplicación mediante la función ExtCreatePen.
Descripción
elpPenStyle: especifica una combinación de tipo de pluma, estilo, estilo de extremo y estilo de unión. El valor de cada categoría puede recuperarse usando el operador de bits AND con la máscara apropiada.
El miembro elpPenStyle, enmascarado con PS_TYPE_MASK contiene uno de los siguientes valores de tipo de pluma:
Valor | Significado |
---|---|
PS_GEOMETRIC | La pluma es geométrica. |
PS_COSMETIC | La pluma es cosmética. |
El miembro elpPenStyle enmascarado con PS_STYLE_MASK contiene uno de los siguientes valores de estilo de pluma:
Valor | Significado |
---|---|
PS_SOLID | La pluma es sólida. |
PS_DASH | La pluma es de trazos. |
PS_DOT | La pluma es de puntos. |
PS_DASHDOT | La pluma es de puntos y trazos alternados. |
PS_DASHDOTDOT | La pluma es de líneas y dobles puntos. |
PS_NULL | La pluma es invisible. |
PS_USERSTYLE | Se usa un array de estilo suministrado por el usuario. |
PS_INSIDEFRAME | La pluma es sólida. Cuando ésta pluma se usa en cualquier función de dibujo del GDI que requiera un rectángulo que sirva como límite, las dimensiones de la figura se reducirán para que se ajusten por completo al interior del rectángulo, teniendo en cuenta el grosor de la pluma. Esto sólo se aplica a plumas geométricas. |
La siguiente categoría se aplica sólo a plumas geométricas. El miembro elpPenStyle enmascarado con PS_ENDCAP_MASK contiene uno de los siguientes valores de extremo de línea:
Valor | Significado |
---|---|
PS_ENDCAP_ROUND | Los extremos de la línea son redondeados. |
PS_ENDCAP_SQUARE | Los extremos de la línea son cuadrados. |
PS_ENDCAP_FLAT | Los extremos de la línea planos. |
La siguiente categoría se aplica sólo a plumas geométricas. El miembro elpPenStyle enmascarado con PS_JOIN_STYLE contiene uno de los siguientes valores de unión:
Valor | Significado |
---|---|
PS_JOIN_BEVEL | Las uniones son cortadas. |
PS_JOIN_MITER | Las uniones son picudas cuando están dentro del límite actual indicado por SetMiterLimit. La unión será cortada cuando se exceda ese límite. |
PS_JOIN_ROUND | Las uniones serán redondeadas. |
elpWidth: especifica la anchura de la pluma. Si el miembro elpPenStyle especifica una pluma geométrica, este valor es la anchura de la línea en unidades lógicas. En otro caso, la pluma es cosmética y este valor es 1.
elpBrushStyle: especifica el estilo de pincel de la pluma. El valor del miembro elpBrushStyle puede ser uno de los siguientes:
Valor | Descripción |
---|---|
BS_DIBPATTERN | Especifica un pincel de patrón definido por una especificación de mapa de bits independiente del dispositivo (DIB). Si elpBrushStyle es BS_DIBPATTERN, el miembro elpHatch contiene un manipulador a un DIB enpaquetado. |
BS_DIBPATTERNPT | Especifica un pincel de patrón definido por una especificación de mapa de bits independiente del dispositivo (DIB). Si elpBrushStyle es BS_DIBPATTERNPT, el miembro elpHatch contiene un puntero a un DIB empaquetado. |
BS_HATCHED | Especifica un pincel rayado. |
BS_HOLLOW | Especifica un pincel vacío o NULL. |
BS_PATTERN | Especifica un pincel de patrón definido por un mapa de bits en memoria. |
BS_SOLID | Especifica un pincel sólido. |
elpColor: si elpBrushStyle es BS_SOLID o BS_HATCHED, elpColor especifica el color en el que pinta la pluma. Para BS_HATCHED, las funciones SetBkMode y SetBkColor determinan el color del fondo.
Si elpBrushStyle es BS_HOLLOW o BS_PATTERN, elpColor se ignora.
Si elpBrushStyle es BS_DIBPATTERN o BS_DIBPATTERNPT, la palabra de menor peso de elpColor especifica si los miembros bmiColors de la estructura BITMAPINFO contienen valores explícitos de rojo, verde y azul (RGB) o índices dentro de la paleta lógica actualmente realizada. El valor elpColor debe ser uno de los siguientes:
Valor | Significado |
---|---|
DIB_PAL_COLORS | La tabla de colores consiste en un array de índices de 16 bits dentro de la paleta lógica actualmente realizada. |
DIB_RGB_COLORS | La tabla de colores contiene valores RGB literales. |
elpHatch: Si elpBrushStyle es BS_PATTERN, elpHatch es un manipulador al mapa de bits que define el patrón.
Si elpBrushStyle es BS_SOLID o BS_HOLLOW, elpHatch es ignorado.
Si elpBrushStyle es BS_DIBPATTERN, el miembro elpHatch es un manipulador a un DIB empaquetado. Para obtener este manipulador, la aplicación debe llamar a la función GlobalAlloc para conseguir un bloque de memoria global y después llenar la memoria con el DIB empaquetado. Un DIB empaquetado consiste en una estructura BITMAPINFO seguida inmediatametne por un array de bytes que definen los puntos del mapa de bits.
Si elpBrushStyle es BS_DIBPATTERNPT, el miembro elpHatch es un puntero a un DIB empaquetado.
Si elpBrushStyle es BS_HATCHED, el miembro elpHatch especifica la orientación de las líneas usadas para crear el rayado. Puede ser uno de los siguientes valores:
Valor | Significado |
---|---|
HS_BDIAGONAL | Rayado a 45º hacia arriba (de izquierda a derecha) |
HS_CROSS | Líneas cruzadas horizontales y verticales |
HS_DIAGCROSS | Rayado a 45º cruzado |
HS_FDIAGONAL | Rayado a 45º hacia abajo (de izquierda a derecha) |
HS_HORIZONTAL | Rayado horizontal |
HS_VERTICAL | Rayado vertical |
elpNumEntries: especifica el número de entradas en el array de estilo del miembro elpStyleEntry. Este valor es cero si elpPenStyle especificado no es PS_USERSTYLE.
elpStyleEntry: especifica un array de estilo suministrado por el usuario. El array se especifica con una longitud finita, pero se usa como si se repitiera indefinidamente. La primera entrada en el array especifica la longitud del primer segmento. La segunda especifica la longitud de la primera separación. A partir de ahí, las longitudes de segmentos y separaciones se alternan.
Si elpWidth especifica una pluma geométrica, las longitudes se expresan en unidades lógicas. En otro caso, la pluma es cosmética, y la longitudes se expresan en unidades de dispositivo.