Udostępnij za pośrednictwem


Routing poleceń

Twoja odpowiedzialność za pracę z poleceniami jest ograniczona do nawiązywania połączeń mapy komunikatów między poleceniami i ich funkcjami obsługi— zadaniem, dla którego używasz Kreatora klas MFC. Należy również napisać kod dla programów obsługi poleceń.

Komunikaty systemu Windows są zwykle wysyłane do głównego okna ramki, ale komunikaty poleceń są następnie kierowane do innych obiektów. Platforma kieruje polecenia za pomocą standardowej sekwencji obiektów docelowych poleceń, z których jeden ma mieć procedurę obsługi dla polecenia. Każdy obiekt docelowy polecenia sprawdza mapę komunikatów, aby sprawdzić, czy może obsłużyć komunikat przychodzący.

Różne klasy obiektów docelowych poleceń sprawdzają własne mapy komunikatów w różnym czasie. Zazwyczaj klasa kieruje polecenie do niektórych innych obiektów, aby dać im pierwszą szansę na polecenie. Jeśli żaden z tych obiektów nie obsługuje polecenia, oryginalna klasa sprawdza własną mapę komunikatów. Następnie, jeśli nie może podać samej procedury obsługi, może kierować polecenie do jeszcze większej liczby obiektów docelowych poleceń. Poniższa tabela Standard Command Route (Trasa polecenia w warstwie Standardowa) pokazuje, jak każda z klas skonsuuje tę sekwencję. Ogólna kolejność, w której element docelowy polecenia kieruje polecenie, to:

  1. Do aktualnie aktywnego podrzędnego obiektu docelowego polecenia.

  2. Dla siebie.

  3. Do innych obiektów docelowych poleceń.

Jak kosztowny jest ten mechanizm routingu W porównaniu z tym, co program obsługi wykonuje w odpowiedzi na polecenie, koszt routingu jest niski. Należy pamiętać, że struktura generuje polecenia tylko wtedy, gdy użytkownik wchodzi w interakcję z obiektem interfejsu użytkownika.

Trasa polecenia w warstwie Standardowa

Gdy obiekt tego typu otrzymuje polecenie . . . Daje on sobie i innym obiektom docelowym poleceń szansę obsługi polecenia w następującej kolejności:
Okno ramki MDI (CMDIFrameWnd) 1. Aktywne CMDIChildWnd
2. To okno ramki
3. Aplikacja (CWinApp obiekt)
Okno ramki dokumentu (CFrameWnd, CMDIChildWnd) 1. Aktywny widok
2. To okno ramki
3. Aplikacja (CWinApp obiekt)
Wyświetlanie 1. Ten widok
2. Dokument dołączony do widoku
Dokument 1. Ten dokument
2. Szablon dokumentu dołączony do dokumentu
Okno dialogowe 1. To okno dialogowe
2. Okno, które jest właścicielem okna dialogowego
3. Aplikacja (CWinApp obiekt)

Gdzie ponumerowane wpisy w drugiej kolumnie powyższej tabeli wymieniają inne obiekty, takie jak dokument, zobacz odpowiedni element w pierwszej kolumnie. Na przykład podczas odczytywania w drugiej kolumnie, w której widok przekazuje polecenie do jego dokumentu, zobacz wpis "Dokument" w pierwszej kolumnie, aby kontynuować kierowanie.

Zobacz też

Jak struktura wywołuje programy obsługi