Ĺadny brzuch
Witam,
chcialbym sie tylko upewnic czy funkcja
DispatchMessage (&msgKomunikat);
w petli komunikatów (tzw. pompie komunikatów), która jest w funkcji WinMain();
while (GetMessage(&msgKomunikat, NULL, 0, 0)) { TranslateMessage (&msgKomunikat); DispatchMessage (&msgKomunikat); }
wysyla komunikat zeby go obsluzyc do procedury zdarzeniowej okna ?
czyli do:
LRESULT CALLBACK WindowEventProc(HWND hWindow, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DESTROY: PostQuitMessage (0); return 0; } return DefWindowProc(hWindow, uMsg, wParam, lParam); }
czy to nie jest ze sobą wogóle powiązane?
jeżeli ktoś by wiedział, to proszę też o powiedzenie mi jak to się dzieje, że ta funkcja DispatchMessage wie, do ktorej procedury zdarzeniowej ma wyslac dana wiadomosc? (wszakże może być ich pare dla kilku okien...) a nie przyjmuje ona jako parametr uchwytu okna ani nic takiego... Przypuszczam, że te informacje niesie sam komunikat MSG msgkomunikat?
pozdraiwam i z góry dziękuję za odpowiedź
Użytkownik Ka-lolek edytował ten post 11 grudzień 2006, 21:17
z tego co pamietam to jest tak jak mowisz :)
Dokładnie. Procedurę zdarzeniową określasz przy wypełnianiu struktury WNDCLASSEX, w polu lpfnWndProc. Teraz jeżeli popatrzysz sobie na procedurę obsługi okna (jak zapewne wiesz jest ona wywoływana przez system) LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) to masz uchwyt okna, jest to uchwyt rodzica okna do którego kierowany jest komunikat, a reszte masz w wParam i lParam.
//Jeżeli coś źle mówie to poprawcie !
Użytkownik pura89 edytował ten post 11 grudzień 2006, 22:17
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
chcialbym sie tylko upewnic czy funkcja
DispatchMessage (&msgKomunikat);
w petli komunikatów (tzw. pompie komunikatów), która jest w funkcji WinMain();
while (GetMessage(&msgKomunikat, NULL, 0, 0)) { TranslateMessage (&msgKomunikat); DispatchMessage (&msgKomunikat); }
wysyla komunikat zeby go obsluzyc do procedury zdarzeniowej okna ?
czyli do:
LRESULT CALLBACK WindowEventProc(HWND hWindow, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DESTROY: PostQuitMessage (0); return 0; } return DefWindowProc(hWindow, uMsg, wParam, lParam); }
czy to nie jest ze sobą wogóle powiązane?
jeżeli ktoś by wiedział, to proszę też o powiedzenie mi jak to się dzieje, że ta funkcja DispatchMessage wie, do ktorej procedury zdarzeniowej ma wyslac dana wiadomosc? (wszakże może być ich pare dla kilku okien...) a nie przyjmuje ona jako parametr uchwytu okna ani nic takiego... Przypuszczam, że te informacje niesie sam komunikat MSG msgkomunikat?
pozdraiwam i z góry dziękuję za odpowiedź
Użytkownik Ka-lolek edytował ten post 11 grudzień 2006, 21:17
z tego co pamietam to jest tak jak mowisz :)
Dokładnie. Procedurę zdarzeniową określasz przy wypełnianiu struktury WNDCLASSEX, w polu lpfnWndProc. Teraz jeżeli popatrzysz sobie na procedurę obsługi okna (jak zapewne wiesz jest ona wywoływana przez system) LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) to masz uchwyt okna, jest to uchwyt rodzica okna do którego kierowany jest komunikat, a reszte masz w wParam i lParam.
//Jeżeli coś źle mówie to poprawcie !
Użytkownik pura89 edytował ten post 11 grudzień 2006, 22:17