winapi obsługa wielu komunikatów

0

piszę właśnie program, coś jak total commander i napotkałem na mały problem. W kursie winapi czytałem o pętli komunikatów, więc zrobiłem 3, jedną dla okna i po jednej dla każdego listboxa, jednak program zaczął się zacinać. Problem rozwiązałem zamieniając 3 pętle na jedną, ale przez to nie wiem do którego obiektu został wysłany komunikat. Teraz zamierzam dodać kolejne okno, co jeszcze bardziej utrudnia zabawę, bo na tym oknie będą kolejne kontrolki i muszę wiedzieć do której został wysłany komunikat... Jak mam to zrobić? Jak poprawnie napisać pętle komunikatów bym mógł obsłużyć wiele kontrolek bez zacinania programu?

0

POKAŻ KOD.

W programie powinna być w zasadzie jedna pętla, w funkcji main (WinMain), o takiej podstawowej budowie:

MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}

wszystko ponadto, a zwłaszcza jeśli ma być więcej niż jedna taka pętla w programie, tylko jeśli wie się co się robi.

Absolutnie nie powinno się robić osobnej pętli dla każdej kontrolki, a nawet dla każdego okna.

0
while(!exit)
{
    while(PeekMessage(&msg,0,0,PM_REMOVE))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
} 

no i tutaj ew daję ifa przed translate i tam sprawdzam, czy wciśnięty jest esc ale np jak chce sprawdzić czy listbox dostał enter to tutaj tego nie mam jak sprawdzić...

0

klawiaturę obsługuje się w komunikatach WM_KEYDOWN, WM_KEYUP i WM_CHAR.

0

wiem, ale skąd mam wiedzieć, czy to komunikat dla mojego listboxa, editboxa, całego okna, czy innego okna? elementy takie jak listbox nie mają funkcji do obsługi komunikatów...

0

mam komunikat, chcę wiedzieć dla czego on jest przeznaczony

1 użytkowników online, w tym zalogowanych: 0, gości: 1