Witam, dopiero drążę temat więc proszę o wyrozumiałość.
Planuję zrobić aplikację w WinApi (windows) w taki sposób, że będzie okno główne i kilka okien dzieci ew. niezależnych okien.
Procedura okna będzie wspólna dla wszystkich okien tj. coś w stylu:
LRESULT CALLBACK IWindow::MsgRouter(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
if(message == WM_NCCREATE)
{
IWindow* current_window = (IWindow*)(((CREATESTRUCT*)lParam)->lpCreateParams);
SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR)current_window);
}
IWindow* current_window = (IWindow*)GetWindowLongPtr(hWnd, GWLP_USERDATA);
if(current_window)
return current_window->WndProc(hWnd, message, wParam, lParam);
else
return DefWindowProc(hWnd, message, wParam, lParam);
}
Teraz pytanie: czy jeśli chciałbym utworzyć okna dzieci lub niezależne okna w innym wątku to czy jest to ogólnie bezpieczne? Tzn. chodzi mi o aspekt wspólnej funkcji komunikatów oraz o pętlę komunikatów, która będzie wysyłać odpowiednie sygnały do okien?
Na razie to tyle, bo dopiero myślę nad tym co chcę zrobić i nad wszelkimi konsekwencjami ;-).
Z góry dzięki za pomoc!