var
hWindow: HWND;
msg: TMSG;
WindowClass: TWndClassEx;
function WindowCreate(WinCaption: PChar):HWND;
begin
WindowClass.cbSize := sizeof (WindowClass);
WindowClass.style := CS_HREDRAW or CS_VREDRAW;
WindowClass.lpfnWndProc := @WindowProc;
WindowClass.cbClsExtra := 0;
WindowClass.cbWndExtra := 0;
WindowClass.hInstance := HInstance;
WindowClass.hIcon := LoadIcon (0,IDI_APPLICATION);
WindowClass.hCursor := LoadCursor (0,IDC_ARROW);
WindowClass.hbrBackground:=Color_BtnFace+2;
WindowClass.lpszMenuName := nil;
WindowClass.lpszClassName := CLASS_NAME;
RegisterClassEx(WindowClass);
Result:= CreateWindowEx(0,CLASS_NAME,WinCaption,
WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or WS_THICKFRAME or
WS_MINIMIZEBOX,100,100,WIN_WIDTH,WIN_HEIGHT,0,0,Hinstance,nil);
SHOWWINDOW (hWindow,SW_Show);
end;
hWindow := WindowCreate(WIN_CAPTION);
Во-первых: WindowClass - как только делаю ее не глобальной, регистрация класса заканчивается ошибкой. (Изначально регистрацию класса хотел сделать во внешней функции)
И второе: Если CreateWindowEx я вызываю как в этой функции, окно даже не появляется на экране, работает только прямое присваивание переменной:
hWindow:= CreateWindowEx
Почему?