Помогите найти ошибку. Возникла на пустом месте, в чем дело не пойму.
Функция 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);
}