Message Maps

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Message Maps neboli Mapování zpráv je systém řízení a distribuce zpráv (myšleno zprávy systému) knihovny MFC, které zajišťuje registraci a správné přesměrování zpráv příslušné funkci.

Funkce

registrace událostí (zpráv) Windows (vykreslování, změna velikosti okna…) * přesměrování zpráv jejich obslužným rutinám (funkcím) * registrace uživatelem definovaných zpráv, zejména v nabídkách a panelech nástrojů

Význam

Použití systému mapování zpráv pro distribuci zpráv skrz aplikaci má pozitivní vliv na složitost tříd a tudíž i na celkovou rychlost. Mapování spočívá v propojení jednotlivých zpráv (tyto zprávy jsou v MFC vyjádřeny celočíselnou hodnotou, která jednoznačně identifikuje druh zprávy) se členskými funkcemi třídy, která má zprávu zachytávat. +more Tím zcela odpadá potřeba virtuálních event handlerů (virtuální metody účelně definované v základní třídě k reagování na zprávy), které - kvůli značnému množství možných událostí - tak značně zatěžují odvozenou třídu z velké části nepoužitou implementací. Třídy MFC se však díky mapám zpráv uskromnily na ryze základní virtuální funkce, jako je např. "OnPaint" apod. , které jsou zároveň implicitně mapovány, takže - pokud není třeba výchozí implementaci měnit - se vývojář může soustředit pouze na specifické vlastnosti jeho odvozené třídy.

Aplikace map zpráv

Mapy zpráv představují nelehký systém, který na první pohled není zcela srozumitelný. V MFC jsou však lehko ovladatelné pomocí několika maker, která skrývají tuto složitost pod jednoduchým názvem. +more Jsou to v prvé řadě makra "DECLARE_MESSAGE_MAP", které se vkládá do hlavičkového souboru třídy, a makra "BEGIN_MESSAGE_MAP" a "END_MESSAGE_MAP", vkládaná do souboru . cpp, mezi něž se vkládají definice propojení zpráv s členskými funkcemi definované třídy.

Definice propojení si opět vyžadují použití předdefinovaných maker pro zúhlednění a čitelnost kódu. Tato makra dodržují přísné názvosloví, díky němuž lze z názvu snadno vypozorovat druh zprávy, kterou zachytává. +more Až na výjimky je název makra odvozen od názvu zprávy, přičemž počáteční zkratka "WM_" je nahrazena zkratkou "ON_". Kupříkladu zpráva WM_PAINT je tedy mapována pomocí makra "ON_PAINT".

Druhy zpráv

Mezi základní definované zprávy systému Windows patří: * WM_PAINT * WM_SIZE * WM_LBUTTONDOWN * WM_COMMAND

Pomocí zprávy WM_COMMAND lze snadno zaregistrovat uživatelem definovanou zprávu. Jako příklad může sloužit změna barvy nebo velikosti objektu zobrazeného v okně. +more V nabídce, pravým tlačítkem nebo jiným způsobem budete chtít změnit velikost nebo barvu objektu. Pohodlným způsobem může sloužit použití WM_COMMAND.

Kategorie:API Microsoftu

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top