Kategorie komunikatów
Jakie rodzaje komunikatów zapisują programy obsługi dla trzech głównych kategorii:
komunikaty systemu Windows
Dotyczy to głównie tych komunikatów rozpoczynających się od prefiksu WM_ , z wyjątkiem WM_COMMAND. Komunikaty systemu Windows są obsługiwane przez okna i widoki. Te komunikaty często mają parametry używane podczas określania sposobu obsługi komunikatu.
Powiadomienia sterujące
Obejmuje to WM_COMMAND komunikatów powiadomień z kontrolek i innych okien podrzędnych do okien nadrzędnych. Na przykład kontrolka edycji wysyła jej element nadrzędny WM_COMMAND komunikat zawierający kod EN_CHANGE powiadomienia sterowania, gdy użytkownik podjął akcję, która mogła zmienić tekst w kontrolce edycji. Procedura obsługi okna dla komunikatu odpowiada na komunikat powiadomienia w odpowiedni sposób, na przykład pobieranie tekstu w kontrolce.
Platforma kieruje komunikaty powiadomień sterujących, takie jak inne komunikaty WM_ . Jednym z wyjątków jest jednak BN_CLICKED komunikat powiadomienia sterowanego wysyłany przez przyciski, gdy użytkownik je kliknie. Ten komunikat jest traktowany specjalnie jako komunikat polecenia i kierowany jak inne polecenia.
Komunikaty poleceń
Obejmuje to WM_COMMAND komunikatów powiadomień z obiektów interfejsu użytkownika: menu, przyciski paska narzędzi i klawisze akceleratora. Struktura przetwarza polecenia różni się od innych komunikatów i może być obsługiwana przez więcej rodzajów obiektów, jak wyjaśniono w temacie Command Targets (Obiekty docelowe poleceń).
Komunikaty systemu Windows i komunikaty powiadomień sterujących
Komunikaty w kategoriach 1 i 2 — komunikaty systemu Windows i powiadomienia sterujące — są obsługiwane przez okna: obiekty klas pochodnych od klasy CWnd
. Obejmuje CFrameWnd
to klasy , , CMDIFrameWnd
CMDIChildWnd
, CView
, CDialog
i własne klasy pochodne z tych klas bazowych. Takie obiekty hermetyzują HWND
uchwyt w oknie systemu Windows.
Komunikaty poleceń
Komunikaty w kategorii 3 — polecenia — mogą być obsługiwane przez szerszą gamę obiektów: dokumentów, szablonów dokumentów i samego obiektu aplikacji oprócz okien i widoków. Gdy polecenie bezpośrednio wpływa na jakiś konkretny obiekt, warto mieć ten obiekt do obsługi polecenia. Na przykład polecenie Otwórz w menu Plik jest logicznie skojarzone z aplikacją: aplikacja otwiera określony dokument po otrzymaniu polecenia. Dlatego procedura obsługi dla polecenia Open jest funkcją składową klasy aplikacji. Aby uzyskać więcej informacji o poleceniach i sposobie ich kierowania do obiektów, zobacz How the Framework Calls a Handler (Jak struktura wywołuje program obsługi).