С ++ открыть окно
Я новичок в программировании на С ++. Когда я компилирую этот код, он не выдает никакой ошибки, но пока он все еще работает, я не вижу никакого окна. Я скопировал этот код из книги в свой визуальный С ++. Что я делаю неправильно. Спасибо за все
// How to print text in Win32 C/C++
// Auther: -LeetGamer-
#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)
{
WNDCLASSEX ps;
HWND hWnd;
ZeroMemory(&ps,sizeof(WNDCLASSEX));
ps.cbSize=sizeof(WNDCLASSEX);
ps.style=CS_HREDRAW | CS_VREDRAW ;
ps.lpfnWndProc=(WNDPROC)WindowProc;
ps.hInstance=hInstance;
ps.hCursor=LoadCursor(NULL,IDC_ARROW);
ps.hbrBackground=(HBRUSH)COLOR_WINDOW;
ps.lpszClassName="asdasdasd";
RegisterClassEx(&ps);
hWnd=CreateWindowEx(NULL,"ASDASDDA","dsfsdfsdf",WS_OVERLAPPEDWINDOW,300,300,500,400,NULL,NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
MSG mesaj;
while(GetMessage(&mesaj,NULL,0,0))
{
TranslateMessage(&mesaj);
DispatchMessage(&mesaj);
}
return mesaj.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 ответ
Имя класса должно быть одинаковым в RegisterClassEx
а также CreateWindowEx
использовать:
const char * pszClassName = "MyClassName";
[...]
ps.lpszClassName = pszClassName;
[...]
hWnd = CreateWindowEx( NULL, pszClassName, [...]
Кроме того, возьмите в привычку проверять результаты API. Вот, CreateWindowEx
возвращенный NULL
,