Udostępnij za pośrednictwem


Komunikat map (ATL)

Mapa wiadomości kojarzy funkcji obsługi z danej wiadomości, polecenia lub powiadomienie.Za pomocą ATL's wiadomości mapę makra, można określić mapę komunikat okna.Procedury okna w CWindowImpl, CDialogImpl, i CContainedWindowT bezpośrednie komunikatów okna do jego wiadomości mapy.

Funkcje obsługi wiadomości zaakceptować dodatkowy argument typu BOOL&.Argument ten wskazuje wiadomości zostały przetworzone, czy jest ustawiona TRUE domyślnie.Funkcja obsługi następnie ustaw argument na FALSE , aby wskazać, że nie ma obsługi wiadomości.W przypadku ATL będzie szukać funkcji obsługi dalsze mapie wiadomości.Przez ustawienie tego argumentu FALSE, można najpierw wykonać niektóre działania w odpowiedzi na wiadomość, a następnie pozwól przetwarzania domyślne lub inną funkcję obsługi do zakończenia obsługi wiadomości.

Mapy łańcuchowej wiadomości

ATL umożliwia łańcucha mapy komunikat, który kieruje wiadomość obsługi wiadomości mapy zdefiniowany w innej klasy.Na przykład można zaimplementować wspólnej obsługi wiadomości w osobnej klasy zapewniające zachowanie jednolitego dla wszystkich okien łańcuchowym do tej klasy.Można łańcucha klasy podstawowej lub członek danych klasy.

ATL obsługuje również dynamiczne tworzenie łańcucha który pozwala łańcucha do innego obiektu mapy wiadomości w czasie wykonywania.Aby zaimplementować dynamiczne tworzenie łańcucha, musi pochodzić od klasy CDynamicChain.Następnie zadeklarować CHAIN_MSG_MAP_DYNAMIC makra na mapie wiadomości.CHAIN_MSG_MAP_DYNAMICwymaga unikatowy numer identyfikujący obiekt i mapę wiadomości, do którego są instalacjami.Należy zdefiniować ten unikatową wartość poprzez wywołanie CDynamicChain::SetChainEntry.

Łańcuch dla każdej klasy, która deklaruje mapę wiadomości, pod warunkiem, że klasa pochodzi od CMessageMap.CMessageMapUmożliwia obiektu narazić mapy jego wiadomości do innych obiektów.Należy zauważyć, że CWindowImpl już pochodzi od CMessageMap.

Alternatywne mapy wiadomości

Wreszcie, ATL obsługuje wiadomości alternatywny mapy, zadeklarowanych z ALT_MSG_MAP makro.Każda mapa alternatywny wiadomości jest identyfikowany przez unikatowy numer przekazać do ALT_MSG_MAP.Za pomocą alternatywnego wiadomości mapuje, może obsługiwać wiele okien w jednej mapie wiadomości.Należy zauważyć, że domyślnie, CWindowImpl nie używać map alternatywny wiadomości.Dodania, zastąpić WindowProc metody w sieci CWindowImpl-uzyskane klasy i wywołanie ProcessWindowMessage z identyfikatorem wiadomości mapy.

Zobacz też

Informacje

Okno wykonawczych