Ошибка создания окна CreateWindow
От: Amper  
Дата: 06.04.06 08:41
Оценка:
Помогите найти ошибку. Возникла на пустом месте, в чем дело не пойму.
Функция CreateWindow() возврашает 0. GetLastError возвращает 1400 — недопустимый дескриптор окна.

static SampleApplication g_App;

/* ...... ...... */

bool SampleApplication::CreateMainWindow(HINSTANCE hInstance)
{
      // Регистрация класса
      WNDCLASSEX wc =
    {
        sizeof(wc),
        CS_CLASSDC,
        MsgProc,
        0L,
        0L,
        hInstance,
        NULL,
        NULL,
        NULL,
        NULL,
        "MyClass",
        NULL
    };
    
    if (!RegisterClassEx(&wc)) 
    {
        MessageBox(NULL,"Ошибка регистрации класса",NULL,MB_OK|MB_ICONSTOP);
        return false;
      }

     // Создание окна приложения
    HWND hDesktopWnd=GetDesktopWindow();
      if (!hDesktopWnd)
    {
        MessageBox(NULL,"Не найден рабочий стол",NULL,MB_OK|MB_ICONSTOP);
        return false;
    }


    hWnd=CreateWindow("MyClass",
                "Sample",
                WS_OVERLAPPEDWINDOW,
                100,100,400,300,
                NULL,
                NULL,
                hInstance,
                NULL);
    if (!hWnd)
    {
        MessageBox(NULL,"Ошибка создания окна",NULL,MB_OK|MB_ICONSTOP);
        return false;
    }
    return true;
}


// Объявлена static
LRESULT WINAPI SampleApplication::MsgProc(HWND hWnd, UINT msg, WPARAM wParam,LPARAM lParam)
{
    switch (msg)
    {
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
        case WM_PAINT:
            {
                PAINTSTRUCT ps;
                BeginPaint(hWnd,&ps);
                g_App.Render();
                EndPaint(hWnd,&ps);
                return 0;
            }
    }
 
    return DefWindowProc(g_App.hWnd,msg,wParam,lParam);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.