CPen::CreatePen
Cria uma caneta lógica superficial ou geométrica com o estilo especificado, a largura e atributos do pincel e anexa o CPen objeto.
BOOL CreatePen(
int nPenStyle,
int nWidth,
COLORREF crColor
);
BOOL CreatePen(
int nPenStyle,
int nWidth,
const LOGBRUSH* pLogBrush,
int nStyleCount = 0,
const DWORD* lpStyle = NULL
);
Parâmetros
nPenStyle
Especifica o estilo para a caneta.Para obter uma lista dos valores possíveis, consulte o nPenStyle parâmetro na CPen construtor.nWidth
Especifica a largura da caneta.Para a primeira versão de CreatePen, se esse valor for 0, a largura em unidades de dispositivo é sempre 1 pixel, independentemente do modo de mapeamento.
A segunda versão do CreatePen, 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 do LOGBRUSH estrutura Especifica a cor da caneta e o lbStyle membro de LOGBRUSH estrutura deve ser conjunto para BS_SOLID.If nPenStyle is 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.
Valor de retorno
Nonzero, ou a alça de uma caneta lógica, se bem-sucedida; caso contrário, 0.
Comentários
A primeira versão do CreatePen inicializa uma caneta com o estilo especificado, largura e cor. A caneta, em seguida, pode ser selecionada sistema autônomo a caneta corrente para qualquer contexto de dispositivo.
Canetas tem uma largura maior que 1 pixel devem sempre ter ambos o PS_NULL, PS_SOLID, or PS_INSIDEFRAME estilo.
Se a caneta tiver o PS_INSIDEFRAME estilo e uma cor que não corresponda a uma cor na tabela de cores lógico, a caneta é desenhada com uma cor pontilhamento.The PS_SOLIDestilo de caneta não pode ser usado para criar uma caneta com uma cor pontilhamento.O estilo de PS_INSIDEFRAME é idêntico ao PS_SOLID se a largura da caneta for menor ou igual a 1.
A segunda versão do CreatePen inicializa uma caneta superficial ou geométrica lógica que tenha especificado estilo, largura e atributos de pincel. A largura de uma caneta superficial é sempre 1; a largura de uma caneta geométrica sempre é especificada em unidades de mundo.Depois de um aplicativo cria uma caneta lógica, ele pode selecionar a caneta em um contexto de dispositivo chamando o CDC::SelectObject função.Depois de selecionar uma caneta em um contexto de dispositivo, ele pode ser usado para desenhar linhas e curvas.
If nPenStyle é PS_COSMETIC and PS_USERSTYLE, as entradas a lpStyle matriz especificam os comprimentos dos traços e espaços em unidades de estilo. Uma unidade de estilo é definida do dispositivo no qual a caneta é usada para desenhar uma linha.
If nPenStyle é PS_GEOMETRIC and PS_USERSTYLE, as entradas a lpStyle matriz especificar comprimentos dos traços e espaços em unidades lógicas.
If nPenStyle é PS_ALTERNATE, a unidade de estilo é ignorada e Outros cada pixel é definido.
Quando um aplicativo não exigir uma determinada caneta, ela deve chamar o CGdiObject::DeleteObject membro funcionar ou destruir o CPen objeto para que o recurso não fique mais em uso. Um aplicativo não deve excluir uma caneta quando a caneta é selecionada em um contexto de dispositivo.
Exemplo
CPen myPen1, myPen2;
// Create a solid red pen of width 2.
myPen1.CreatePen(PS_SOLID, 2, RGB(255,0,0));
// Create a geometric pen.
LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = RGB(0,255,0);
myPen2.CreatePen(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);
Requisitos
Cabeçalho: afxwin.h