[C con Clase] Poner Controles: static, edit, button en ventana de la aplicación

Juan Antonio jalr43 en hotmail.com
Dom Dic 31 13:26:54 CET 2006


Hola,

los controles son también ventanas, por ellos se usa también CreateWindowEx para crearlos. En vez de registrar una clase y pasarla como parámetro se usan clases predifinidas como "BUTTON", "STATIC", etc. El identificador del control se asigna en el parámetro hMenu. Necesitas la instancia de la aplicación que se puede guardar en el mensaje WM_CREATE, que también es donde se crean los controles. Los controles tienen que ser ventanas hijas de una ventan padre, en este caso la ventana principal, que su manejador es el primer parámetro de la función WindowProcedure. Ahora un pequeño ejemplo de como se crea un botón:

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static HINSTANCE hInstance;
    HWND hBoton, hCajaTexto, hEtiqueta;
    
    switch (message)                  /* handle the messages */
    {
        case WM_CREATE:
             hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
             hBoton = CreateWindowEx( 0, "BUTTON", "Botón", WS_CHILD | WS_BORDER | WS_VISIBLE,
                                      100, 100, 80, 30, hwnd, (HMENU)CM_BUTTON, hInstance, NULL ); 
             break;
        case WM_COMMAND:
             if( LOWORD( wParam ) == CM_BUTTON ) 
                 MessageBox( hwnd, "Se ha pulsado el botón", "Aviso", MB_OK );
             break;
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}

Un saludo,
Juan Antonio.
  ----- Original Message ----- 
  From: ntonino 
  To: cconclase en listas.conclase.net 
  Sent: Saturday, December 30, 2006 9:27 PM
  Subject: [C con Clase] Poner Controles: static, edit, button en ventana de la aplicación


  Saludos a los miembros de la lista.

  Soy nuevo en esto y los ejemplos de "static", "edit", "button" que hay en el Curso "Win Api" están ubicados en una ventana de diálogo.
  Lo que yo quiero es ponerlos en la ventana principal de la aplicación. ¿Me echais una mano?

  Gracias y Feliz año nuevo.




------------------------------------------------------------------------------


  _______________________________________________
  Cconclase mailing list
  Cconclase en listas.conclase.net
  http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20061231/f7e9a9e0/attachment.html>


Más información sobre la lista de distribución Cconclase