Interpretowanie danych wprowadzonych przez użytkownika za pośrednictwem widoku
Inne funkcje członkowskie uchwytu widoku i interpretowania wszystkich danych wejściowych użytkownika. Zazwyczaj funkcje składowe programu obsługi komunikatów są definiowane w klasie widoków do przetworzenia:
Komunikaty systemu Windows generowane przez akcje myszy i klawiatury.
Polecenia z menu, przycisków paska narzędzi i klawiszy akceleratora.
Te funkcje składowe programu obsługi komunikatów interpretują następujące akcje jako dane wejściowe, wybrane lub edytowane, w tym przenoszenie danych do schowka i z niej:
Ruchy myszy i kliknięcia, przeciągania i dwukrotne kliknięcia
Naciśnięcia klawiszy
Polecenia menu
Które komunikaty systemu Windows są obsługiwane przez widok, zależą od potrzeb aplikacji.
Obsługa komunikatów i tematy mapowania wyjaśnia, jak przypisywać elementy menu i inne obiekty interfejsu użytkownika do poleceń oraz jak powiązać polecenia z funkcjami programu obsługi. Obsługa komunikatów i tematy mapowania wyjaśnia również, w jaki sposób MFC kieruje polecenia i wysyła standardowe komunikaty systemu Windows do obiektów zawierających programy obsługi dla nich.
Na przykład aplikacja może wymagać zaimplementowania bezpośredniego rysunku myszą w widoku. W przykładzie Scribble pokazano, jak obsługiwać WM_LBUTTONDOWN, WM_MOUSEMOVE i WM_LBUTTONUP komunikaty odpowiednio, aby rozpocząć, kontynuować i zakończyć rysunek segmentu wiersza. Z drugiej strony czasami może być konieczne interpretowanie kliknięcia myszy w widoku jako zaznaczenia. Funkcja obsługi widoku OnLButtonDown
określałaby, czy użytkownik rysował, czy wybierał. W przypadku wybrania programu obsługi określi, czy kliknięcie znajdowało się w granicach określonego obiektu w widoku, a jeśli tak, zmień wyświetlanie tak, aby pokazywał obiekt zgodnie z zaznaczeniem.
Widok może również obsługiwać niektóre polecenia menu, takie jak te z menu Edycja, aby wycinać, kopiować, wklejać lub usuwać wybrane dane przy użyciu Schowka. Taka procedura obsługi wywołałaby niektóre funkcje składowe powiązane ze Schowkiem klasy CWnd
, aby przenieść wybrany element danych do schowka lub z niej.