Wysyłanie i odbieranie komunikatów
Rozważ wysłanie części procesu i sposób reagowania na platformę.
Większość komunikatów wynika z interakcji użytkownika z programem. Polecenia są generowane za pomocą kliknięć myszy w elementach menu lub przyciskach paska narzędzi lub naciśnięciu klawiszy akceleratora. Użytkownik generuje również komunikaty systemu Windows, na przykład przenosząc lub zmieniając rozmiar okna. Inne komunikaty systemu Windows są wysyłane, gdy wystąpią zdarzenia, takie jak uruchamianie lub kończenie działania programu, ponieważ system Windows uzyskuje fokus lub traci fokus itd. Komunikaty powiadomień sterowania są generowane za pomocą kliknięć myszy lub innych interakcji użytkownika z kontrolką, takich jak przycisk lub kontrolka pola listy w oknie dialogowym.
Funkcja Run
składowa klasy CWinApp
pobiera komunikaty i wysyła je do odpowiedniego okna. Większość komunikatów poleceń jest wysyłanych do głównego okna ramki aplikacji. Wstępnie WindowProc
zdefiniowane przez bibliotekę klas pobiera komunikaty i kieruje je inaczej, w zależności od kategorii odebranych komunikatów.
Teraz rozważ otrzymanie części procesu.
Początkowy odbiornik komunikatu musi być obiektem okna. Komunikaty systemu Windows są zwykle obsługiwane bezpośrednio przez ten obiekt okna. Komunikaty poleceń, zwykle pochodzące z głównego okna ramki aplikacji, są kierowane do łańcucha poleceń docelowego opisanego w temacie Routing poleceń.
Każdy obiekt zdolny do odbierania komunikatów lub poleceń ma własną mapę komunikatów, która łączy komunikat lub polecenie z nazwą programu obsługi.
Gdy obiekt docelowy polecenia odbiera komunikat lub polecenie, przeszukuje mapę komunikatów pod kątem dopasowania. Jeśli znajdzie program obsługi dla komunikatu, wywołuje procedurę obsługi. Aby uzyskać więcej informacji na temat wyszukiwania map komunikatów, zobacz How the Framework Search Message Mapy (Jak platforma wyszukuje komunikat Mapy). Ponownie zapoznaj się z rysunku Polecenia w strukturze.