Lápices, líneas y rectángulos
Para dibujar líneas con GDI+ de Windows, debe crear un objeto Graphics y un objeto Pen . El objeto Graphics proporciona los métodos que realizan realmente el dibujo y el objeto Pen almacena atributos de la línea, como el color, el ancho y el estilo. Dibujar una línea es simplemente una cuestión de llamar al método DrawLine del objeto Graphics . La dirección del objeto Pen se pasa como uno de los argumentos al método DrawLine. En el ejemplo siguiente se dibuja una línea desde el punto (4, 2) hasta el punto (12, 6).
myGraphics.DrawLine(&myPen, 4, 2, 12, 6);
DrawLine es un método sobrecargado de la clase Graphics , por lo que hay varias maneras de proporcionarlo con argumentos. Por ejemplo, puede construir dos objetos Point y pasar referencias a los objetos Point como argumentos al método DrawLine.
Point myStartPoint(4, 2);
Point myEndPoint(12, 6);
myGraphics.DrawLine(&myPen, myStartPoint, myEndPoint);
Puede especificar determinados atributos al construir un objeto Pen . Por ejemplo, un constructor Pen permite especificar el color y el ancho. En el ejemplo siguiente se dibuja una línea azul de ancho 2 de (0, 0) a (60, 30).
Pen myPen(Color(255, 0, 0, 255), 2);
myGraphics.DrawLine(&myPen, 0, 0, 60, 30);
El objeto Pen también tiene atributos, como el estilo de guión, que puede usar para especificar características de la línea. Por ejemplo, en el ejemplo siguiente se dibuja una línea discontinua de (100, 50) a (300, 80).
myPen.SetDashStyle(DashStyleDash);
myGraphics.DrawLine(&myPen, 100, 50, 300, 80);
Puede usar varios métodos del objeto Pen para establecer muchos más atributos de la línea. Los métodos Pen::SetStartCap y Pen::SetEndCap especifican la apariencia de los extremos de la línea; los extremos pueden ser planos, cuadrados, redondeados, triangulares o personalizados. El método Pen::SetLineJoin permite especificar si las líneas conectadas están miteradas (unidas con esquinas nítidas), biseladas, redondeadas o recortadas. En la ilustración siguiente se muestran líneas con varios estilos de extremo y de unión.
El proceso de dibujar rectángulos con GDI+ es similar al de dibujar líneas. Para dibujar un rectángulo, necesita un objeto Graphics y un objeto Pen . El objeto Graphics proporciona un método DrawRectangle y el objeto Pen almacena atributos, como el ancho de línea y el color. La dirección del objeto Pen se pasa como uno de los argumentos al método DrawRectangle. En el ejemplo siguiente se dibuja un rectángulo con su esquina superior izquierda en (100, 50), un ancho de 80 y un alto de 40.
myGraphics.DrawRectangle(&myPen, 100, 50, 80, 40);
DrawRectangle es un método sobrecargado de la clase Graphics , por lo que hay varias maneras de proporcionarlo con argumentos. Por ejemplo, puede construir un objeto Rect y pasar una referencia al objeto Rect como argumento al método DrawRectangle.
Rect myRect(100, 50, 80, 40);
myGraphics.DrawRectangle(&myPen, myRect);
Un objeto Rect tiene métodos para manipular y recopilar información sobre el rectángulo. Por ejemplo, los métodos Inflado y Desplazamiento cambian el tamaño y la posición del rectángulo. El método Rect::IntersectsWith indica si el rectángulo cruza otro rectángulo determinado y el método Contains indica si un punto determinado está dentro del rectángulo.