CPen::CPen
Constrói um CPen objeto.
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 o estilo de caneta.Esse parâmetro na primeira versão do construtor pode ser um dos seguintes valores:PS_SOLID Cria uma caneta sólida.
PS_DASH Cria uma caneta tracejada.Válido somente quando a largura da caneta é unidades de 1 ou menos, no dispositivo.
PS_DOT Cria uma caneta pontilhada.Válido somente quando a largura da caneta é unidades de 1 ou menos, no dispositivo.
PS_DASHDOT Cria uma caneta com traços e pontos alternados.Válido somente quando a largura da caneta é unidades de 1 ou menos, no dispositivo.
PS_DASHDOTDOT Cria uma caneta com traços e pontos duplos alternados.Válido somente quando a largura da caneta é unidades de 1 ou menos, no dispositivo.
PS_NULL Cria uma caneta nula.
PS_INSIDEFRAME Cria uma caneta que desenha uma linha dentro do quadro de formas fechadas gerados por funções de saída a GDI do Windows que especificam um retângulo delimitador (por exemplo, a Elipse, Retângulo, RoundRect, Pie, e Chord funções de membro). Quando esse estilo é usado com funções de saída de GDI do Windows que não especificam um retângulo delimitador (por exemplo, a LineTo função de membro), a área de desenho da caneta não é limitada por um quadro.
A segunda versão do CPen construtor Especifica uma combinação de tipo, estilo, arremate participante e atributos de unir. Os valores de cada categoria devem ser combinados, usando o operador OR bit a bit (|).O tipo de caneta pode ser um dos seguintes valores:
PS_GEOMETRIC Cria uma caneta geométrica.
PS_COSMETIC Cria uma caneta superficial.
A segunda versão do CPen construtor adiciona os seguintes estilos de caneta para nPenStyle:
PS_ALTERNATE Cria uma caneta que define cada pixel Outros.(Este estilo é aplicável somente para canetas decorativas.)
PS_USERSTYLE Cria uma caneta que usa uma matriz de estilização fornecida pelo usuário.
Arremate participante pode ser um dos seguintes valores:
PS_participanteCAP_ROUND participante maiúsculas são arredondadas.
PS_participanteCAP_SQUARE participante maiúsculas são quadradas.
PS_ENDCAP_FLAT Tampas de extremidade são simples.
A unir pode ser um dos seguintes valores:
PS_JOIN_BEVEL Associações são chanfradas.
PS_JOIN_MITER Associações são mitered quando elas estiverem dentro do limite corrente conjunto pelo conjunto MiterLimit função.Se a unir exceder esse limite, é chanfrado.
PS_JOIN_ROUND Associações são arredondadas.
nWidth
Especifica a largura da caneta.Para a primeira versão do construtor, se esse valor for 0, a largura em unidades de dispositivo é sempre 1 pixel, independentemente do modo de mapeamento.
Para a segunda versão do construtor, se nPenStyle é PS_GEOMETRIC, a largura é expresso em unidades lógicas.If nPenStyle é PS_COSMETIC, a largura deve ser conjunto como 1.
crColor
Contém uma cor RGB para a caneta.pLogBrush
Aponta para um LOGBRUSH estrutura. If nPenStyle é PS_COSMETIC, the lbColor membro de LOGBRUSH estrutura Especifica a cor da caneta e o lbStyle membro de LOGBRUSH estrutura deve ser definida como BS_SOLID.If nPenStyle é PS_GEOMETRIC, todos os membros devem ser usados para especificar os atributos de pincel da caneta.nStyleCount
Especifica o comprimento, em unidades doubleword, do lpStyle matriz. Este valor deve ser zero se nPenStyle não é PS_USERSTYLE.lpStyle
Aponta para uma matriz de valores doubleword.O primeiro valor Especifica o comprimento do tracejado primeiro em um estilo definido pelo usuário, o segundo valor Especifica o comprimento do primeiro espaço e assim por diante.Esse ponteiro deve ser NULO if nPenStyle não é PS_USERSTYLE.
Comentários
Se você usar o construtor sem argumentos, você deve inicializar o resultante CPen objeto com o CreatePen, CreatePenIndirect, ou CreateStockObject funções de membro.
Se você usar o construtor que leva argumentos, sem inicialização adicional será necessária.O construtor sem argumentos pode lançar uma exceção se erros são encontrados, enquanto o construtor sem argumentos sempre será bem-sucedida.
Exemplo
// 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
Cabeçalho: afxwin.h