Mapy odvozených zpráv
Během zpráva zpracování, kontrola zpráv třídy vlastní mapy není konec článku mapu zpráv.Co se stane, když třída CMyView (odvozené z CView) nemá žádný odpovídající záznam zprávy?
Mějte na paměti, že CView, základní třída CMyView, je zase odvozen z CWnd.Thus CMyView is a CView and is a CWnd.Každá z těchto tříd má vlastní mapu zpráv.Na obrázku "A zobrazit hierarchii" níže zobrazuje hierarchický vztah tříd, ale mějte na paměti, že CMyView objekt je jediný objekt, který má vlastnosti všech tří tříd.
Zobrazit hierarchii
Ano, pokud zprávy nelze spárovat v třídě CMyViewna mapu zpráv rozhraní framework prohledá také mapu zpráv jeho okamžité základní třídy.BEGIN_MESSAGE_MAP Makro na začátku mapu zpráv určuje názvy dvou tříd jako argumenty:
BEGIN_MESSAGE_MAP(CMyView, CFormView)
První argument název třídy, do které patří mapu zpráv.Druhý argument obsahuje připojení přímé základní třídy – CView zde, tak rámci hledání jeho mapu zpráv příliš.
Obslužné rutiny zpráv, které jsou k dispozici v základní třídě jsou tedy zděděna odvozené třídy.To je velmi podobná normální virtuální členská funkce bez nutnosti provádět všechny členské funkce obslužné rutiny virtuální.
Pokud žádný popisovač se vyskytuje ve všech map základní třídy zpráv, se provádí výchozí zpracování zprávy.Pokud je zpráva příkaz, nasměruje ji rámci dalšího cíle příkazu.Pokud je standardní zprávy systému Windows, je zpráva předána proceduru okna odpovídající výchozí.
Rámci urychlení odpovídající mapu zpráv, ukládá poslední odpovídá pravděpodobnosti, že ho bude tato zpráva zobrazena znovu.Důsledkem tohoto je framework procesy poměrně účinně ošetřena zprávy.Zpráva mapy jsou také místa efektivnější než implementace, které používajících virtuální funkce.