<div dir="ltr">Hola a todos, tengo un programa sencillo usando la API de Windows y lo he hecho sin ver algún ejemplo. Cuando lo terminé lo compilé y no me dió ningún error, pero al ejecutarse lo único que me sale es la consola y no se muestra la ventana. Después de ésto revisé mi código con los ejemplos y no encuentro nada mal, sin embargo la ventan no se muestra!<br>
<br>Aquí les dejo el código para que lo verifiquen y si encuentran algo mal me puedan corregir. <br><br>Por si las dudas, utilizo DevCpp.<br><br><blockquote>#include <windows.h><br><br>#define CM_ABRIR    100<br>#define CM_GUARDAR  101<br>
#define CM_SALIR    102<br><br>LRESULT CALLBACK WindowProcedure (HWND hWindow, UINT Mensaje, WPARAM wParam, LPARAM lParam);<br>void InsertarMenu(HWND hWindow);<br><br>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)<br>
{<br>    HWND hWnd;<br>    MSG msg;<br>    WNDCLASSEX wincl;<br>    <br>    // Rellenar la clase de ventana<br>    wincl.lpfnWndProc = WindowProcedure;<br>    wincl.lpszClassName = "Mi Clase";<br>    wincl.lpszMenuName = NULL;<br>
    wincl.cbSize = sizeof(WNDCLASSEX);<br>    wincl.cbClsExtra = 0;<br>    wincl.cbWndExtra = 0;<br>    wincl.style = CS_DBLCLKS;<br>    <br>    wincl.hInstance = hInstance;<br>    wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);<br>
    wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);<br>    wincl.hCursor = LoadCursor(NULL, IDC_ARROW);<br>    wincl.hbrBackground = (HBRUSH)COLOR_BACKGROUND;<br>    <br>    // Registrar la clase de ventana<br>    if(!RegisterClassEx(&wincl)) return 0;<br>
    <br>    // Crear la ventana<br>    hWnd = CreateWindowEx(0, "Mi Clase", "Introducción a las matemáticas", WS_OVERLAPPEDWINDOW,<br>                          CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,<br>
                          HWND_DESKTOP, NULL, hInstance, NULL);<br>    <br>    // InsertarMenu<br>    InsertarMenu(hWnd);        <br>                          <br>    // Mostrar la ventana<br>    ShowWindow(hWnd, SW_SHOWDEFAULT);<br>
    <br>    while(GetMessage(&msg, NULL, 0, 0))<br>    {<br>        TranslateMessage(&msg);<br>        DispatchMessage(&msg);<br>    }<br>    <br>    return msg.wParam;<br>}<br><br><br>/*        WindowProcedure       */<br>
LRESULT CALLBACK WindowProcedure(HWND hWindow, UINT Mensaje, WPARAM wParam, LPARAM lParam)<br>{<br>        switch(Mensaje)<br>        {<br>            case WM_DESTROY:<br>                 PostQuitMessage(0);<br>                 break;<br>
            default:<br>                 DefWindowProc(hWindow, Mensaje, wParam, lParam);<br>        }<br>        <br>        return 0;<br>}<br><br>void InsertarMenu(HWND hWindow)<br>{<br>     HMENU hBarraMenu, hMenu;<br>
     <br>     hBarraMenu = CreateMenu();<br>     hMenu = CreateMenu();<br>     <br>     AppendMenu(hMenu, MF_STRING, CM_ABRIR, "&Abrir");<br>     AppendMenu(hMenu, MF_STRING, CM_GUARDAR, "&Guardar");<br>
     AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);<br>     <br>     AppendMenu(hBarraMenu, MF_POPUP | MF_STRING, (UINT)hMenu, "&Archivo");<br>     <br>     SetMenu(hWindow, hBarraMenu);<br>}<br></blockquote>
</div>