CPen::CPen
Constrói um objeto de 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 o estilo de caneta. Este parâmetro na primeira versão do construtor pode ser um dos seguintes valores:PS_SOLID cria uma caneta contínuo.
PS_DASH cria uma caneta tracejada. Válido somente quando a largura da caneta é menor ou igual a 1, em unidades de dispositivo.
PS_DOT cria uma caneta pontilhada. Válido somente quando a largura da caneta é menor ou igual a 1, em unidades de dispositivo.
PS_DASHDOT cria uma caneta com alternar traços e pontos. Válido somente quando a largura da caneta é menor ou igual a 1, em unidades de dispositivo.
PS_DASHDOTDOT cria uma caneta com alternar traços e pontos de double. Válido somente quando a largura da caneta é menor ou igual a 1, em unidades de dispositivo.
PS_NULL cria uma caneta nula.
PS_INSIDEFRAME cria uma caneta que desenhar uma linha no ladrilho de formas fechadas geradas pelas funções de saída do windows GDI que especificam um retângulo delimitador (por exemplo, Elipse, Retângulo, RoundRect, Pie, e funções de membro de Chord ). Quando esse estilo é usado com funções de saída do windows GDI que não especificam um retângulo delimitador (por exemplo, a função de membro de LineTo ), a área de desenho de caneta não está limitado por um quadro.
A segunda versão do construtor de CPen especifica uma combinação de tipo, estilo, tampão de extremidade, e associa a atributos. 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 cosmética.
A segunda versão do construtor de CPen adiciona os seguintes estilos de caneta para nPenStyle:
PS_ALTERNATE cria uma caneta que define cada pixel outro. (Esse estilo é aplicável somente para cosméticas menus.)
PS_USERSTYLE cria uma caneta que usa uma matriz de estilos fornecida pelo usuário.
O tampão de extremidade pode ser um dos seguintes valores:
Os tampões final dePS_ENDCAP_ROUND são redondos.
Os tampões final dePS_ENDCAP_SQUARE são quadrado.
Os tampões final dePS_ENDCAP_FLAT são lisos.
A adição pode ser um dos seguintes valores:
PS_JOIN_BEVEL Joins é de alto relevo.
PS_JOIN_MITER Joins é mitrado quando estão dentro do atual limite definido pela função de SetMiterLimit . Se a associação excede esse limite, é chanfrada.
PS_JOIN_ROUND Joins é redondo.
nWidth
Especifica a largura de caneta.Para a primeira versão do construtor, se esse valor é 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 é fornecida em unidades lógicas. Se nPenStyle é PS_COSMETIC, a largura deve ser definida para 1.
crColor
Contém uma cor RGB para a caneta.pLogBrush
Pontos a estrutura de LOGBRUSH . Se nPenStyle é PS_COSMETIC, o membro de lbColor estrutura de LOGBRUSH especifica a cor de caneta e o membro de lbStyle estrutura de LOGBRUSH deve ser definido como BS_SOLID. Se nPenStyle é PS_GEOMETRIC, todos os membros devem ser usados para especificar os atributos do pincel de caneta.nStyleCount
Especifica o tamanho, em unidades de palavra, composta de matriz de lpStyle . Esse valor deve ser zero se nPenStyle não é PS_USERSTYLE.lpStyle
Aponta para uma matriz de valores de palavra composta. O primeiro valor especifica o comprimento do primeiro sublinhado em um estilo definido pelo usuário, dependendo do valor especifica o comprimento do primeiro espaço, e assim por diante. Esse ponteiro deve ser NULO se nPenStyle não é PS_USERSTYLE.
Comentários
Se você usar o construtor sem argumentos, você deve inicializar o objeto resultante de CPen com CreatePen, CreatePenIndirect, ou funções de membro de CreateStockObject .
Se você usar o construtor que utiliza argumentos, então nenhuma inicialização adicional é necessária. O construtor com argumentos pode acionar uma exceção se forem encontrados erros, quando o construtor sem argumentos funcionará com sempre.
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