Odvozené mapy zprávy
Během zpracování, kontrola třídy a zpráva zprávy mapa není konec článku mapa zprávy.Co se stane, pokud třída CMyView (odvozené z CView) nemá žádné odpovídající položky pro zprávy?
Pamatujte CView, základní třídy pro CMyView, je zase odvozen od CWnd.Thus CMyViewis a CView and is a CWnd.Každá z těchto tříd má vlastní zprávu mapy.Obrázek "A zobrazit hierarchii" níže zobrazuje hierarchický vztah třídy, ale ponechat v úvahu, že CMyView objekt je jeden objekt, který má vlastnosti všech tří tříd.
Zobrazit hierarchii.
Ano, pokud zpráva třídy CMyViewv rámci zpráva mapa prohledá také mapu zprávy okamžité základní třída.BEGIN_MESSAGE_MAP Makro na začátku zprávy mapy Určuje názvy dvou tříd jako argumenty:
BEGIN_MESSAGE_MAP(CMyView, CFormView)
První argument název třídy, do které patří mapy zprávy.Druhý argument poskytuje připojení s okamžitou základní třídy – CView zde – takže rámci příliš vyhledávání mapování jeho zprávy.
Obslužné rutiny zpráv v základní třídě jsou zděděny takto odvozené třídy.Toto je velmi podobné funkce normální virtuální členů bez nutnosti, aby všechny členské funkce zpracování virtuální.
Je-li nalezen žádný popisovač v žádné mapy základní třída zprávy, je provedena výchozí zpracování zprávy.Pokud je zpráva příkazu, rámci ji směruje cíl dalšího příkazu.Pokud je standardní zprávy systému Windows, bude zpráva předána vhodné výchozí okno postupu.
Urychlit odpovídající zpráva mapy, rámci ukládá do mezipaměti poslední odpovídá pravděpodobnosti, že ji obdrží stejnou zprávu znovu.Důsledkem toho to je rámec procesy poměrně efektivní neošetřené zprávy.Zpráva mapy jsou také prostor efektivnější než implementace, které používají virtuální funkce.