CPen::CPen
Crea un objeto CPen.
CPen( );
CPen(
int nPenStyle,
int nWidth,
COLORREF crColor
);
CPen(
int nPenStyle,
int nWidth,
const LOGBRUSH* pLogBrush,
int nStyleCount = 0,
const DWORD* lpStyle = NULL
);
Parámetros
nPenStyle
especifica el estilo de lápiz. Este parámetro en la primera versión del constructor puede tener uno de los valores siguientes:PS_SOLID crea un lápiz sólido.
PS_DASH crea un lápiz rayado. Solo es válido cuando el ancho del lápiz es 1 o inferior, en unidades.
PS_DOT crea un lápiz dotted. Solo es válido cuando el ancho del lápiz es 1 o inferior, en unidades.
PS_DASHDOT crea un lápiz con guiones y puntos de alternancia. Solo es válido cuando el ancho del lápiz es 1 o inferior, en unidades.
PS_DASHDOTDOT crea un lápiz con guiones y puntos de alternancia double. Solo es válido cuando el ancho del lápiz es 1 o inferior, en unidades.
PS_NULL crea un lápiz null.
PS_INSIDEFRAME crea un lápiz que dibuja una línea dentro del cuadro de formas cerradas generadas por las funciones de resultados de Windows GDI que especifican un rectángulo delimitador (por ejemplo, Elipse, Rectángulo, RoundRect, Pie, y el miembro de Chord funciona). Cuando este estilo se utiliza con las funciones de resultados de Windows GDI que no especifican un rectángulo delimitador (por ejemplo, la función miembro de LineTo ), el área de gráfico de lápiz no está limitada por un marco.
La segunda versión del constructor de CPen especifica una combinación de tipo, de estilo, de extremo final, y atributos de unión. Los valores de cada categoría deben combinarse mediante el OR bit a bit el operador (|). El tipo de lápiz puede tener uno de los valores siguientes:
PS_GEOMETRIC crea un lápiz geométricos.
PS_COSMETIC crea un lápiz cosmético.
La segunda versión del constructor de CPen agrega los estilos de lápiz siguientes para nPenStyle:
PS_ALTERNATE crea un lápiz que establezca cada otro píxel. (Este estilo solo es aplicable para los lápices cosméticos.)
PS_USERSTYLE crea un lápiz que utilice una matriz de estilos proporcionado por el usuario.
El extremo final puede tener uno de los valores siguientes:
Las mayúsculas de final dePS_ENDCAP_ROUND son redondas.
Las mayúsculas de final dePS_ENDCAP_SQUARE son cuadradas.
Las mayúsculas de final dePS_ENDCAP_FLAT son planas.
La combinación puede ser uno de los siguientes valores:
Se biselan las uniones dePS_JOIN_BEVEL .
Se juntan con conjuntamente en ángulo las uniones dePS_JOIN_MITER cuando están dentro del límite establecido actual por la función de SetMiterLimit . Si la combinación supera este límite, se bisela.
Las uniones dePS_JOIN_ROUND son redondas.
nWidth
Especifica el ancho del lápiz.Para la primera versión del constructor, si este valor es 0, el ancho en unidades es siempre 1 píxel, independientemente del modo de asignación.
Para la segunda versión de constructor, si nPenStyle es PS_GEOMETRIC, el ancho se da en unidades lógicas. Si nPenStyle es PS_COSMETIC, el ancho establecido en 1.
crColor
contiene RGB color para el lápiz.pLogBrush
Señala una estructura de LOGBRUSH . Si nPenStyle es PS_COSMETIC, el miembro de lbColor de la estructura de LOGBRUSH especifica el color del lápiz y el miembro de lbStyle de la estructura de LOGBRUSH establecido en BS_SOLID. Si nPenStyle es PS_GEOMETRIC, todos los miembros deben ser utilizados para especificar atributos de pincel de lápiz.nStyleCount
Especifica la longitud, en unidades de word doble, de la matriz de lpStyle . este valor debe ser cero si nPenStyle no es PS_USERSTYLE.lpStyle
Señala a una matriz de valores de word doble. El primer valor especifica la longitud del primer guión en un estilo definido por el usuario, el segundo valor especifica la longitud del primer espacio, y así sucesivamente. este puntero debe ser NULL si nPenStyle no es PS_USERSTYLE.
Comentarios
Si utiliza el constructor sin argumentos, debe inicializar el objeto resultante de CPen con CreatePen, CreatePenIndirect, o miembro de CreateStockObject funciona.
Si utiliza el constructor que toma argumentos, no hay otra inicialización necesaria. El constructor con argumentos puede producir una excepción si se encuentran errores, mientras que el constructor sin argumentos se realizará siempre correctamente.
Ejemplo
// Create a solid red pen of width 2.
CPen myPen1(PS_SOLID, 2, RGB(255,0,0));
// Create a geometric pen.
LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(0,255,0);
CPen myPen2(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);
Requisitos
encabezado: afxwin.h