miércoles, 8 de febrero de 2012

Dibujo De Un Rectángulo Utilizando La API De Windows

Que onda chavos!! Bueno pues aquí comenzamos con las aplicaciones de C++ y pues comenzaremos con algo simple y después modificaremos la aplicación para personalizarla y mejorarla, nuestra primera aplicación sera algo muy sencillo, la forma debe ser como se muestra enseguida:


La forma es muy básica y sencilla, solo tenemos 4 botones comunes y corrientes, con el texto Dibujar y a partir del 2° botón los numeramos hasta el 4. Cada uno de los botones lo único que hace es dibujar un rectángulo en la forma, aunque cada botón lo hace de una manera diferente.

El primer botón dibuja un rectángulo con color de relleno (brocha) y con color en el contorno (pluma), en este ejemplo dejamos el color de la brocha por defecto como azul y el color de la pluma como rojo. Los botones 2 y 3 dibujan un rectángulo son color de relleno, esto es solo para demostrar que existen diferentes maneras de dibujar el rectángulo. Y finalmente el botón 4 dibuja un rectángulo con la variación de que a este le podemos insertar un texto, el cual en este caso lo dejamos por defecto como: "TECNOLOGICO DE LA LAGUNA", con el texto en color rojo.

Enseguida se muestra el código de los 4 botones de la aplicación:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        HPEN hpen, hpenOld;
        HBRUSH hbrush, hbrushOld;
        // this de la forma
        HDC hdc = this->Canvas->Handle;
        // Pluma con color rojo para el borde
        hpen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
        // Brocha con color azul para el interior
        hbrush = CreateSolidBrush(RGB(0, 0, 255));
        // Seleccione la nueva pluma y la brocha para dibujar un rectangulo
        hpenOld = SelectObject(hdc, hpen);
        hbrushOld = SelectObject(hdc, hbrush);
        Rectangle(hdc, 100,100, 400,250);
        // Despues de utilizar sus objetos, borrelos y restaure los originales
        SelectObject(hdc, hpenOld);
        DeleteObject(hpen);
        SelectObject(hdc, hbrushOld);
        DeleteObject(hbrush);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        TRect Recto2(150, 140, 275, 200);
        HDC hDC = Canvas->Handle;
        DrawEdge(hDC, &Recto2, BDR_RAISEDOUTER | BDR_SUNKENINNER, BF_RECT);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        RECT Recto;
        Recto.left = 100;
        Recto.top = 50;
        Recto.right = 400;
        Recto.bottom = 300;
        //Aqui utilizamos directamente el Canvas
        Canvas->Rectangle(Recto);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
        TRect Recto(50, 70, 455, 165);
        HDC hDC = Canvas->Handle;
        DrawEdge(hDC, &Recto, BDR_RAISEDOUTER | BDR_SUNKENINNER, BF_RECT);
        SetTextColor(hDC,RGB(255,0,0));
        char *cad="TECNOLOGICO DE LA LAGUNA";
        DrawText(hDC,cad,strlen(cad),&Recto,DT_CENTER); //DT_RIGHT);//DT_LEFT;
}
//---------------------------------------------------------------------------

Finalmente podemos visualizar como se dibuja cada uno de los rectángulos:


Bueno amigos eso es todo por esta ocasión, en la siguiente mostraremos como modificar la misma aplicación que creamos hoy para realizar cosas mucho más avanzadas. Hasta la próxima!

No hay comentarios:

Publicar un comentario