Rejestruję okno - zwraca true:
BOOL RejestrujResizeWindow( HINSTANCE hInst ){
WNDCLASSEX wincl;
wincl.hInstance = hInst;
wincl.lpszClassName = "WH_RESIZEWINDOW";
wincl.lpfnWndProc = ResizeWindowProc;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof (WNDCLASSEX);
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 16;
wincl.cbWndExtra = 16;
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
return RegisterClassEx( & wincl );
}
Następnie tworzę okno:
bool RESIZEWINDOW::Create(){
if(!cWindow->Window())
Destroy();
cWindow->SetWindow(CreateWindowEx(0, "WH_RESIZEWINDOW", "Odtwarzacz", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, HWND_DESKTOP, NULL, GetModuleHandle(NULL), NULL));
if(!cWindow->Window())
return false;
SetWindowLongPtr(cWindow->Window(), GWLP_USERDATA, (LONG)this);
ShowWindow(cWindow->Window(), CmdShow);
return true;
}
Kod wywołujący funkcje i metody:
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nCmdShow)
{
MSG messages;
ENGINE = new cENGINE(hThisInstance, nCmdShow);
{ /// Glowne okno
if(!RejestrujResizeWindow(hThisInstance)){
MessageBox(0, "Main Window - Error Initialize !", "Error", MB_ICONERROR | MB_OK);
delete ENGINE;
return 0;
}
ResizeWindow = new RESIZEWINDOW(ENGINE_GetMessage, hThisInstance, nCmdShow);
if(!ResizeWindow->Create()){
MessageBox(0, "Main Window - Error Creating !", "Error", MB_ICONERROR | MB_OK);
delete ENGINE;
delete ResizeWindow;
return 0;
}
}
ENGINE->f_LoadPlugin("Plugins\\MainDir\\MainWindow\\MainWindow.dll");
while (GetMessage (&messages, NULL, 0, 0))
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
delete ENGINE;
delete ResizeWindow;
return messages.wParam;
}
Pokazuje mi się coś takiego i pętla komunikatów się zawiesza chyba : /
Jakieś pomysły?