Naše úpravy zdrojového kódu začneme změnami, které se budou týkat hlavního okna aplikace. V předchozí podkapitole jsme na obrázcích viděli, že okno zabírá celý displej aplikace; není zobrazené menu ani tlačítko pro vyvolání klávesnice.
Nově vytvořená okna se totiž automaticky roztáhnou přes celý displej a je potřeba je ručně zmenšit o velikost řádku s menu a tlačítkem pro vyvolání klávesnice (26 obrazových bodů).
Programátor také musí ručně umístit na displej prvek Menu bar, který obsahuje položky menu a tlačítko pro vyvolání klávesnice. O vytvoření prvku Menu bar se stará funkce SHCreateMenuBar. V následujícím rámečku je obalující funkce, která vytvoří prvek Menu bar a vrátí ovladač okna prvku:
Do prvku Menu bar umístíme v pokračování kapitoly položky menu a ovládací ikony.
Při obsluze zprávy WM_CREATE vytvoříme náš Command bar voláním naší obalující funkce a uložíme jeho ovladač do globální proměnné:
Ve funkci WinMain změníme velikost hlavního okna aplikace tak, aby se uvolnilo místo na displeji. Konstanta MENU_HEIGHT má hodnotu 26 (výška prvku Command bar.
Posloupnost jednotlivých akcí, pomocí kterých se dole na displeji instaluje viditelný Command bar je tedy následující:
Tam, kde stolní počítače využívají klávesnici, mají počítače s operačním systémem Pocket PC rozšíření SIP (zkratka ze Software Input Panel). SIP je obvykle aktivován tlačítkem v pravém dolním rohu displeje; stejným tlačítkem také vybíráme aktivní vstupní metodu - klávesnici, plošku pro zápis Grafitti apod..
Je-li SIP aktivován, zobrazí své vlastní okno nad oknem stávající aplikace. Poté je hlavnímu oknu zaslána zpráva WM_SIZE, na kterou může programátor ve své aplikaci reagovat přepočítáním velikosti a obsahu okna.
Ještě dvě zprávy jsou pro správné chování SIP v naší aplikaci důležité:
Operační systém Pocket PC umožňuje obě dvě zprávy jednoduše ošetřit voláním funkcí SHHandleWMActivate a SHHandleWMSettingChange, podobně jako v následujícím příkladu:
Když už jsme zajistili, že naše aplikace bude korektně spolupracovat se SIP, můžeme nyní SIP ovládat pomocí funkce SHSipPreference. Parametrem funkce mohou být konstanty SIP_UP, SIP_DOWN, SIP_FORCEDOWN a SIP_UNCHANGED.
Ondřej Lavička
Stránka načtena za 0.00193 sekund.