Definindo a largura e o alinhamento da caneta

Ao criar um objeto Pen , você pode fornecer a largura da caneta como um dos argumentos para o construtor. Você também pode alterar a largura da caneta usando o método Pen::SetWidth .

Uma linha teórica tem uma largura de zero. Quando você desenha uma linha, os pixels são centralizados na linha teórica. O exemplo a seguir desenha uma linha especificada duas vezes: uma com uma caneta preta de largura 1 e outra com uma caneta verde de largura 10.

Pen blackPen(Color(255, 0, 0, 0), 1);
Pen greenPen(Color(255, 0, 255, 0), 10);
stat = greenPen.SetAlignment(PenAlignmentCenter);

// Draw the line with the wide green pen.
stat = graphics.DrawLine(&greenPen, 10, 100, 100, 50);

// Draw the same line with the thin black pen.
stat = graphics.DrawLine(&blackPen, 10, 100, 100, 50);

A ilustração a seguir mostra a saída do código anterior. Os pixels verdes e os pixels pretos são centralizados na linha teórica.

ilustração mostrando uma linha fina, diagonal, preta cercada por uma linha larga e verde

O exemplo a seguir desenha um retângulo especificado duas vezes: uma com uma caneta preta de largura 1 e outra com uma caneta verde de largura 10. O código passa o valor PenAlignmentCenter (um elemento da enumeração PenAlignment ) para o método Pen::SetAlignment para especificar que os pixels desenhados com a caneta verde são centralizados no limite do retângulo.

Pen blackPen(Color(255, 0, 0, 0), 1);
Pen greenPen(Color(255, 0, 255, 0), 10);
stat = greenPen.SetAlignment(PenAlignmentCenter);

// Draw the rectangle with the wide green pen.
stat = graphics.DrawRectangle(&greenPen, 10, 100, 50, 50);

// Draw the same rectangle with the thin black pen.
stat = graphics.DrawRectangle(&blackPen, 10, 100, 50, 50);

A ilustração a seguir mostra a saída do código anterior. Os pixels verdes são centralizados no retângulo teórico, que é representado pelos pixels pretos.

ilustração mostrando uma linha preta fina na forma de um retângulo, cercada por uma linha verde mais larga

Você pode alterar o alinhamento da caneta verde modificando a terceira instrução no exemplo anterior da seguinte maneira:

stat = greenPen.SetAlignment(PenAlignmentInset);

Agora os pixels na linha verde larga aparecem no interior do retângulo conforme mostrado na ilustração a seguir.

ilustração mostrando uma linha preta fina na forma de um retângulo, incluindo uma linha verde larga da mesma forma