V minulém díle jsme si vytvořili první pokusný program, který vypisoval hlášení s pozdravem.
Pokud se budete chtít k němu vrátit a znovu si jej prohlédnout stačí zvolit z nabídky File
-> Recent Workspaces -> C:\Pokusy\Ahoj\Ahoj.
Nás ale bude zajímat nový program. Jestli si vzpomínáte, při vytváření Workspace pro
náš první program nám eVC nabídl ve druhém okně (mimo jiné) možnost volby "A typical "Hello
World" application". My jsme sice ze cvičných důvodů zvolili prázdný projekt ("An empty
project"), nyní však použijeme tuto možnost pro seznámení se strukturou klasického Windows
programu.
Opět tedy zvolte File -> New a v políčku Project name zadejte např. jméno "Nazdar".
Jako typ projektu opět použijeme "WCE Application". Na panelu druhé volby teď zvolíme "A typical
"Hello World" application" a necháme eVC, aby dokončilo celý projekt.
V levém okně se nám proti předcházejícímu příkladu objevily tři záložky. ClassView nám dává
přehled o třídách a proměnných použitých v našem projektu. ResourceView udržuje přehled a
přístup k tzv. "Resource", což jsou ikony, menu a další grafické a jiné zdroje použité v
programu. Poslední záložka FileView představuje přehled o souborech zařazených do projektu.
Nás bude zajímat pro jednoduchost pouze soubor Nazdar.cpp.
Dvojklikem na tento soubor jej otevřeme v pravém okně. Můžete si jej prohlédnout. Možná vás
překvapí, že vytvoření "Hello World" programu, který má zobrazit jenom pozdrav, způsobilo
vygenerování tak rozsáhlého zdrojového kódu. Je to dáno tím, že v našem prvním příkladě jsme
použili standardní funkci, která zajistí obsluhu všech událostí týkajících se okna našeho
programu. V právě vygenerovaném příkladě se však o všechny události staráme sami.
Zvolte si odpovídající typ OS a procesoru a sestavte program. Výsledkem by měl být program
odpovídající následujícímu obrázku.
Po spuštění programu zjistíte, že tento pozdrav je podstatně složitější. Kromě samotného
pozdravu se v programu objevila nabídka obsahující dvě položky File a Help.
Pod volbou File najdete možnost ukončit program a volba Help nabízí také jednu
položku About (zobrazená na obr. 8). O vytvoření a obsluhu těchto funkcí se musí
postarat program.
Je na čase podívat se, jak funguje program pro Windows.
Při úspěšném zvládnutí kurzu programovacího jazyka C nebo Pascal obvykle absolventovi zůstanou
utajeny speciality programování pro Windows. Je to dáno tím, že standardní jazyk pokládá
program za posloupnost příkazů postupně vykonávaných jeden po druhém. A tak když je potřeba
např. počkat na potvrzení hlášení na obrazovce uživatelem, program se jednoduše zastaví ve
smyčce a čeká (možná si vzpomenete na častý příkaz používaný v Turbo Pascalu: "repeat until
keypressed;"). :-)
Ve Windows může být na rozdíl od DOSu současně spuštěno více úloh. Podobný příkaz by znamenal
zablokování počítače ve smyčce a tím i zastavení běhu jiných programů.
Program napsaný pro Windows proto počítá s tím, že musí jeden stroj sdílet s více úlohami.
Po úvodních inicializačních procedurách přejde do tzv. smyčky zpráv.
Lze si zjednodušeně představit, že program pro Windows zajišťuje pouze služby pro příslušné
okno na obrazovce počítače. Po inicializaci předá vládu nad počítačem opět operačnímu systému
a ten si program zavolá vždy, když je potřeba zpracovat nějakou událost. Např. operační systém
může zavolat program: "Byla stisknuta klávesa A - obsluž to!" nebo: "Kliknutí myši na souřadnici
XY - obsluž to!".
U programů pro Windows tuto činnost zajišťuje zmíněná smyčka zpráv:
Funkce GetMessage předá řízení zpět do operačního systému a ten se k programu vrátí a jako
výstupní parametr dodá až událost, kterou je potřeba obsloužit. Windows všechny události
předávají pomocí tzv. zpráv. Ty je možné posílat z vašeho programu i jiným programům nebo
je může program posílat sám sobě.
Další funkce Translate... provádějí klávesnicové převody zpráv a funkce DispatchMessage
předá zprávu zpět operačnímu systému, aby ji doručil do tzv. procedury okna ke zpracování.
Na závěr tohoto dílu malinko odbočíme a podíváme se na rozdíl mezi možnými variantami programu.
Možná jste si všimli, že program na obrázku č. 8 vytvořený jako "WCE Application" a spuštěný
pod Pocket PC verzí Windows CE má v pravém horním rohu podivný černý čtvereček. Pokud jej ale
spustíte v operačním systému Windows CE 2.11, je vše O.K.
Rozdíl způsobuje nová verze systému Pocket PC, u které se nepředpokládá vypínání programů.
Programy v počítači běží jakoby trvale, uživatel mezi nimi pouze přepíná. eVC už pro tyto
programy negeneruje vypínací funkce. Budete-li chtít tvořit pro Pocket PC, zvolte na úvod
typ projektu "WCE Pocket PC Application" a eVC vám přichystá kostru programu pro tuto verzi
systému. Viz následující obrázek:
Stránka načtena za 0.00211 sekund.