Окно не появляется - PullRequest
3 голосов
/ 20 июня 2011

Я написал небольшую программу для создания окна.Я делал эту программу раньше, но сейчас я пытаюсь вспомнить все для себя.Когда я закончу писать программу, окно не появится, и когда я сравниваю свой код с книгой, из которой я учусь, то же самое.Что я пропускаю / делаю неправильно?

#include <windows.h>
#include <WindowsX.h>


LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow)
{
    HWND hWnd;

    // information for the window class
    WNDCLASSEX wc;
    ZeroMemory(&wc, sizeof(WNDCLASSEX));


    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
     wc.lpfnWndProc = WindowProc;
     wc.hInstance = hInstance;
     wc.hCursor = LoadCursor(NULL, IDC_ARROW);
     wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
     wc.lpszClassName = "WindowClass1";

     RegisterClassEx(&wc);

     // Create Window
     hWnd = CreateWindowEx( NULL,
                            "WindowClass",
                            "My Program",
                            WS_OVERLAPPEDWINDOW,
                            100,
                            100,
                            600,
                            480,
                            NULL,
                            NULL,
                            hInstance,
                            NULL);


     ShowWindow(hWnd, SW_SHOWDEFAULT);



     MSG msg;

     while(GetMessage(&msg, NULL, 0,0))
     {
         TranslateMessage(&msg);
         DispatchMessage(&msg);
     }
     return msg.wParam;
}


LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
        case WM_DESTROY:
        {
            PostQuitMessage(0);
            return 0;
        } break;
    }
    return DefWindowProc(hWnd, message, wParam, lParam);
}

1 Ответ

3 голосов
/ 20 июня 2011

Сравните имена классов:

wc.lpszClassName = "WindowClass1";

hWnd = CreateWindowEx (NULL, "WindowClass", ...

Лучший способ найти такие ошибки - проверить код возврата каждого API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...