Partilhar via


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

Consulte também

Referência

Classe CPen

Gráfico de hierarquia

CPen::CreatePenIndirect

CPen::CPen

CGdiObject::DeleteObject

LOGBRUSH

Outros recursos

CPen membros