Sdílet prostřednictvím


Zpráva mapy (ATL)

Mapa zprávy funkci zpracování přidružuje určité zprávy, příkaz nebo oznámení.Pomocí tohoto ATL zpráva mapovat makra, zpráva mapy okna můžete určit.Okno postupy v CWindowImpl , CDialogImpl , a CContainedWindowT přímo do okna zprávy mapy jeho zprávy.

Funkce zpracování zpráv přijmout další argument typu BOOL& .Tento argument určuje, zda byla zpráva zpracována a je nastavena na TRUE ve výchozím nastavení.Poté nastavte argument funkci zpracování FALSE k označení, že zpráva nebyla zpracovány.V tomto případě ATL nadále hledat funkci zpracování další mapy zprávy.Nastavením tohoto argumentu FALSE , můžete nejprve provést některé akce v odpovědi na zprávu a poté povolit zpracování výchozí nebo jinou funkci zpracování dokončit zpracování zprávy.

Zřetězené zprávy mapy

ATL také umožňuje řetězové zprávy mapy, které směruje zprávy zpracování zprávy mapy definované v jiné třídy.Je možné implementovat společné zpracování zpráv v samostatné třídy stanovit jednotné chování všech oken řetězení této třídy.Můžete zřetězit základní třídu nebo datový člen vaší třídy.

ATL podporuje také dynamické zřetězení, což umožňuje řetěz jiný objekt mapy zprávy v době spuštění.Implementace dynamických zřetězení, musí být odvozena od třídy CDynamicChain.Pak deklarovat CHAIN_MSG_MAP_DYNAMIC makro v mapě zprávy.CHAIN_MSG_MAP_DYNAMICvyžaduje jedinečné číslo identifikující zprávu mapy, které jsou zřetězení a objektu.Je nutné definovat tuto jedinečnou hodnotu pomocí volání CDynamicChain::SetChainEntry .

Můžete vytvořit řetězové na jakákoliv třída, která prohlašuje mapy zprávy za předpokladu je odvozen z třídy CMessageMap.CMessageMapumožňuje objekt, který chcete vystavit své zprávy mapy na jiné objekty.Všimněte si, že CWindowImpl již je odvozen z CMessageMap .

Alternativní mapy zprávy

Nakonec ATL podporuje alternativní zprávu mapy s ALT_MSG_MAP makro.Každá mapa alternativní zpráva je označena jedinečné číslo, které předáte do ALT_MSG_MAP .Použití alternativní zprávy mapuje, lze zpracovávat zprávy více oken v jedné mapy.Všimněte si, že standardně CWindowImpl nepoužívá zpráva alternativní mapy.Přepsat, přidáte tuto podporu, WindowProc metodu vaše CWindowImpl -odvozené třídy a volání ProcessWindowMessage s mapovat identifikátor zprávy.

Viz také

Referenční dokumentace

Provádění okna