Не регистрируется класс окна
На моменте регистрации проверяю, что если окно не зарегистрировано то вызывается message box собственно он вызвался, окно не появилось
#include "framework.h"
#include "OpengGl.h"
#include <Windows.h>
LRESULT WINAPI WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_DESTROY: {
PostQuitMessage(0);
break;
}
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
}
int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hPrewInstance,LPSTR cmdLine,int cmdShow)
{
MSG msg;
HWND hwnd;
WNDCLASSEX wc;
wc.cbSize = sizeof(wc);
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
wc.hInstance = hinstance;
wc.lpszClassName = L"";
wc.lpszMenuName = NULL;
wc.lpfnWndProc = WndProc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
RegisterClassEx(&wc);
if (!RegisterClassEx(&wc))
{
MessageBox(NULL, L"ERROR", NULL, NULL);
}
hwnd = CreateWindow(wc.lpszClassName,
L"APP",
WS_OVERLAPPED,
0, 0, 600, 600,
NULL, NULL, hinstance, NULL);
ShowWindow(hwnd, cmdShow);
UpdateWindow(hwnd);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
Ответы (2 шт):
Автор решения: gbg
→ Ссылка
Структурку надо забить нулями перед использованием (
ZeroMemory()). Это стандартная практика при работе с WinAPIПроявите фантазию - задайте непустое имя класса окна. Это обязательно.
В дальнейшем, если у вас что-то в венде не работает, посмотрите, что вернула сразу после ошибки функция GetLastError()
Автор решения: citrus
→ Ссылка
wc.lpszClassName = L""; оказалось надо туда хоть что то вписать! если у кого такая проблема все свойства wc заполняйте.....