Premium

Získejte všechny články
jen za 89 Kč/měsíc

Programování pro PocketPC - Aplikace založené na dialogu 1/6

Aplikace založené na dialogu jsou tím naprosto nejjednodušším druhem aplikací pro počítače s operačním systémem založeným na Microsoft Windows, včetně zařízení PocketPC. Ukážeme vám, jak je naprogramovat a k čemu všemu mohou sloužit.

Aplikace založené na dialogu jsou tím naprosto nejjednodušším druhem aplikací pro počítače s operačním systémem založeným na Microsoft Windows, včetně zařízení PocketPC. V této minisérii budeme mluvit o aplikacích založených na různých typech dialogů a ukážeme si, že je velmi jednoduché je naprogramovat a jdou používat nejen k vytváření jednoduchých aplikací, ale například i k "simulaci" uživatelského rozhraní PalmOS.

Pro začátečníka je často první úspěšně přeložená a fungující aplikace založená na dialogu vstupenkou do světa programování v operačním systému Windows CE.

Obsah minisérie

  • Úvod
  • Klasické Windows CE dialogy
  • Overlapped versus Child dialogová okna
  • Ovládání řádky obsahující menu a SIP
  • "Nový" vzhled PocketPC dialogů
  • Programování HTML dialogů
  • Přepínání mezi dialogy ve stylu Palm Pilotů
  • Dialogy typu PropertySheet
  • Závěr

Všechny aplikace v tomto článku popsané byly naprogramovány v Embedded Visual C++ 3.0 (eVC++) a testovány v emulátoru PocketPC a na zařízení MDA I s operačním systémem PocketPC 2002.

Úvod

Aplikace založené na dialogu jsou tím nejjednodušším typem programů pro počítače založené na operačním systému Windows. Nejjednodušší program založený na dialogu má tři řádky (a můžete si jej stáhnout tady (ZIP):

#include "windows.h"
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{ return MessageBox(GetDesktopWindow(), TEXT("Text"), TEXT("Titulek"), MB_OK); }

Společnou vlastností aplikací, založených na dialogu, je absence hlavního okna aplikace. Ve funkci WinMain pouze zavoláme dialog, nebo v nejjednodušším případě jenom funkci MessageBox.

Okno dialogu v takovém případě je přímým potomkem desktopu (obrazovky Today) a přebírá povinnosti hlavního okna aplikace. Veškeré zpracování událostí se děje pouze ve funkci dialogu. Aplikace založená na dialogu (nebo na dialozích) obsahuje minimum zdrojového textu, který přímo nesouvisí s vlastním účelem aplikace.

Aplikace založené na dialozích mají většinou jednoduché uživatelské rozhraní, sestávající ze standardních komponent uživatelského rozhraní Windows CE. Některé komponenty jsou velmi jednoduché a strohé (políčko k zaškrtnutí, tlačítko), jiné jsou velmi komplexní a využitelné v řadě nestandardních situací (komponenta InkX, zobrazení HTML nebo široce konfigurovatelný prvek ListView).

Klasické Windows CE dialogy

Hranaté, strohé a funkční; takové jsou dialogy, které využívají základní prvky, které jsou přenositelné na všechny přístroje s Windows CE. Vytvoříme v eVC++ jednoduchý prázdný projekt a vložíme první dialog:

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPTSTR    lpCmdLine,
                   int       nCmdShow)
{
    DialogBox(hInstance, (LPCTSTR)IDD_MAIN, NULL, (DLGPROC)MainDlgProc);

    return 0;
}

Vytvoříme zdrojový kód aplikace: ve funkci WinMain pouze voláme funkci DialogBox, které předáme jako parametry ID dialogu a adresu funkce dialogu. Kód funkce dialogu je triviální:

LRESULT CALLBACK MainDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM )
{
    switch (message)
    {
        case WM_INITDIALOG:
            return TRUE;

        case WM_COMMAND:
            if(LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
            {
                EndDialog(hDlg, LOWORD(wParam));
                return TRUE;
            }
            break;

        default:
            break;
    }

    return FALSE;
}

Zdrojový kód aplikace můžete stáhnout zde. Po spuštění aplikace se zobrazí dialogové okno uprostřed displeje.

Overlapped versus Child dialogová okna

Při grafickém návrhu dialogu nesmíme zapomenout nastavit typ okna (Style) dialogu na Overlapped:

Pokud bychom to neudělali a okno by bylo typu Child nebo Popup, zablokovali bychom si obrazovku Today. Při volání funkce DialogBox jsme totiž uvedli, že námi vytvářený dialog je přímo potomkem desktopu (obrazovky Today). Pokud by tento dialog byl vytvořen jako klasický blokující dialog (Popup) nebo jako prvek uživatelského rozhraní (Child), choval by se k obrazovce Today tak, jak se tyto dialogy obvykle ke svým rodičům chovají: dokud bychom s ním pracovali, byl by jeho rodič (obrazovka Today) zablokován.

Pokud však vytvoříme dialog se stylem Overlapped, bude okno dialogu zaregistrováno operačním systémem PocketPC jako jedna z aplikací a bude možné se bez obtíží přepínat mezi naší aplikací a obrazovkou Today.


Příště si popíšeme, jak doplnit k první aplikaci s dialogem SIP (panel pro vstup textu) tak, abychom mohli do políčka pro vstup textu v našem dialogu také něco zapsat.

  • Nejčtenější

Spotem s Trojanem na horách operátor popudil Poláky. Nerozuměli nadsázce

21. dubna 2024  8:01

Po dvojici Vojtěch Kotek a Lukáš Pavlásek, k níž později přibyl Jakub Kohák, vsadil T-Mobile ve...

Je to už spíš foťák s mobilem a opravdu se povedl. Test Xiaomi 14 Ultra

21. dubna 2024

Prémiový smartphone Xiaomi 14 Ultra působí mezi současnou nabídkou mobilů jako unikát. Jaký jiný...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Toto zařízení mělo nahradit mobily. V recenzích se mu vysmáli

23. dubna 2024

Novinka s názvem Humane AI Pin se zdála být převratným zařízením. V mnoha ohledech měla nahradit...

Operátoři zahušťují pokrytí Česka signálem 5G. Máte ho doma? Podívejte se

20. dubna 2024

Premium V červenci to budou již čtyři roky, co byla v Česku spuštěna první komerční 5G síť. Zatímco v...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Pošlete sportovní fotku a vyhrajte smartphone nebo dres Patrika Schicka

8. dubna 2024,  aktualizováno  18.4 13:04

Zachyťte na fotografii sportovní moment a vyhrajte úplnou novinku, smartphone vivo V40 SE s bohatou...

Vodafone měl výpadek, někteří zákazníci se nemohli dovolat

25. dubna 2024  10:03,  aktualizováno  10:15

Síť mobilního operátora Vodafone postihl ráno výpadek. Týkal se části zákazníků, kteří se nemohli...

Toto mohl být nevídaný smartphone. Myšlenku však nakonec poslali k vodě

25. dubna 2024

S takovým smartphonem bychom už nikdy nemuseli řešit, že se zpomaluje, nemá dostatek paměti či je...

Samsung má povedenou stylovku. Zkusí to s ní na trhu, kde se mu nedaří

24. dubna 2024

Samsung po velmi dlouhé době oprášil modelovou řadu Galaxy C a představil stylový smartphone se...

Toto zařízení mělo nahradit mobily. V recenzích se mu vysmáli

23. dubna 2024

Novinka s názvem Humane AI Pin se zdála být převratným zařízením. V mnoha ohledech měla nahradit...

Akční letáky
Akční letáky

Prohlédněte si akční letáky všech obchodů hezky na jednom místě!

Manželé Babišovi se rozcházejí, přejí si zachovat rodinnou harmonii

Podnikatel, předseda ANO a bývalý premiér Andrej Babiš (69) s manželkou Monikou (49) v pátek oznámili, že se...

Bývalý fitness trenér Kavalír zrušil asistovanou sebevraždu, manželka je těhotná

Bývalý fitness trenér Jan Kavalír (33) trpí osmým rokem amyotrofickou laterální sklerózou. 19. dubna tohoto roku měl ve...

Herečka Hunter Schaferová potvrdila románek se španělskou zpěvačkou

Americká herečka Hunter Schaferová potvrdila domněnky mnoha jejích fanoušků. A to sice, že před pěti lety opravdu...

Největší mýty o zubní hygieně, kvůli kterým si můžete zničit chrup

Možná si myslíte, že se v péči o zuby orientujete dost dobře, přesto v této oblasti stále ještě existuje spousta...

Tenistka Markéta Vondroušová se po necelých dvou letech manželství rozvádí

Sedmá hráčka světa a aktuální vítězka nejprestižnějšího turnaje světa Wimbledonu, tenistka Markéta Vondroušová (24), se...