[C con Clase] iniciar una aplicación win 32

borubudur borubudur en gmail.com
Mar Ene 2 13:24:32 CET 2007


hola,

estoy empezando a programar con c en windows 32, utilizando una plantilla que inicia un menú, y a partir de ese menú pués se pueden abrir distintos cuadros de diálogo, etc..
lo que sucede es que me gustaria que mi apllicación se iniciara directamente en forma de cuadro de diálogo y sin meus. 
No quisiera echar mano del WinApplWiz, "que ya veo que te lo hace todo, y sin embargo no entiendo lo que hace", preferiria tener la aplaicación base, que inicialice todo el el WinMain, y que desde ahí lance el cuadro de diálogo. 

A continuzació pongo la plantilla que utilizo, teniendo en cuenta que en la estructura de ventana pogo la existencia de un menú, y apartir de allí, efectivamente se lanza el cuadro de dialogo, cosa uqe quiero evitar

#include <windows.h>

/*  Declaración del procedimiento de ventana  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK DlgProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)
{
    HWND hwnd;               /* Manipulador de ventana */
    MSG mensaje;             /* Mensajes recibidos por la aplicación */
    WNDCLASSEX wndclassex;        /* Estructura de datos para la clase de ventana */

    /* Estructura de la ventana*/


c o d i g o

    /* Registrar la clase de ventana, si falla, salir del programa */
    if(!RegisterClassEx(&wndclassex)) return 0;

    /* La clase está registrada, crear la ventana */
    hwnd = CreateWindowEx( . . . . . . .     );

    /* Mostrar la ventana */
    ShowWindow(hwnd, SW_SHOWDEFAULT);

    /* Bucle de mensajes, se ejecuta hasta que haya error o GetMessage devuelva FALSE */
    while(TRUE == GetMessage(&mensaje, NULL, 0, 0))
    {
        /* Traducir mensajes de teclas virtuales a mensajes de caracteres */
        TranslateMessage(&mensaje);
        /* Enviar mensaje al procedimiento de ventana */
        DispatchMessage(&mensaje);
    }

    /* Salir con valor de retorno */
    return mensaje.wParam;
}


/*  Esta función es invocada por la función DispatchMessage()  */
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    static HINSTANCE hInstance;   
    switch (msg)                  /* manipulador del mensaje */
    {
        case WM_CREATE:
           hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
           return 0;
           break;
        case WM_COMMAND:
           switch(LOWORD(wParam)) {
              case CM_DIALOGO:
                 c o d i g o
             case CM_DIALOGO2:
               c o d i g o
           }
           break;
        case WM_DESTROY:
           PostQuitMessage(0);    /* envía un mensaje WM_QUIT a la cola de mensajes */
           break;
        default:                  /* para los mensajes de los que no nos ocupamos */
           return DefWindowProc(hwnd, msg, wParam, lParam);
    }
    return 0;
}

BOOL CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
c o d i g o

}

BOOL CALLBACK DlgProc2(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
c o d i g o

}

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070102/25e6ada6/attachment.html>


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