Ukažme si rovnou příklad vyhovujícího řešení:
RAW CODE |
---|
#include <Windows.h> |
- První věc, které si můžete všimnut, je definice typu naší vlastní zprávy WM_APP_START. Tato zpráva je odvozená od WM_APP. Tato zpráva označuje offset, kde začíná prostor rezervovaných zpráv pro interní užívání naší aplikací. Definice WM_APP má hodnotu 0x8000 (decimálně 32768) a může být k němu přičtena hodnota až do výše 0x3FFF (decimálně 16383); výsledná hodnota tedy nesmí překročit hodnotu 0xBFFF (decimálně 49151). Systém tento rozsah zpráv (svým interním mechanismem) nevyužívá, proto ho označujeme za bezpečný "prostor" pro naše vlastní aplikační zprávy.
- "Co se v tomto callbacku vlastně odehrává?" Zde dochází ke zvláštnímu paradoxu, který využívá fázování implicitní pumpy zpráv pro dialogy WinAPI. Zachytíme zprávu WM_SHOWWINDOW a z ní přidáme na konec fronty pumpy naši (námi definovanou) zprávu WM_APP_START.
- Zpráva WM_SHOWWINDOW je ukončena, proběhne pár mezi-zpráv na pozadí a zavolá se konečně naše tolik očekávaná zpráva WM_APP_START. Když ji zachytíme, získáme tím bod, kdy je dialogové okno již vytvořené a zobrazené.