Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu


Programování PocketPC naruby (3/12)

aktualizováno 
Patříte mezi uživatele PocketPC, kteří by si rádi také něco naprogramovali, řadíte se však k tzv. falešným začátečníkům? Pak právě vám je určen náš seriál věnovaný programování pro kapesní počítače s Windows Mobile. Dnešní díl věnujeme komunikaci prostřednictvím dialogů.
V minulých dílech našeho seriálu o programování jste se mohli seznámit s úvodem do programování pro Pocket PC zařízení a s návrhem obsahu programu. Dnes se zaměříme na dialogy.

Dialogy

Vlastní komunikace s uživatelem se většinou děje prostřednictvím dialogů. Dialogy u Pocket PC většinou zabírají celý displej; od hlavních oken aplikace se liší tím, že v pravém horním rohu mají tlačítko s textem (ok). Dialogy mohou obsahovat obvyklé ovládací prvky, na které jsme zvyklí z jiných verzí Microsoft Windows.

Pokud váš dialog obsahuje pole pro vstup textu, musíte se zamyslet nad jeho vztahem k SIP (Software Input Panel - virtuální klávesnice nebo ploška pro kreslení znaků v dolní části displeje). Pole pro vstup textu by se měla nacházet v horních dvou třetinách displeje, aby nebyla překryta virtuální klávesnicí. Také se můžete rozhodnout, jak se bude SIP chovat při aktivaci dialogu:

  • automaticky se skryje
  • automaticky se aktivuje
  • aktivuje se v závislosti na vybraném políčku a nastavení operačního systému

Každý dialog musí obsahovat funkci, jež zpracovává zprávy operačního systému, které s dialogem souvisí (inicializaci dialogu - zprávu WM_INITDIALOG a změnu stavu ovládacích prvků - WM_COMMAND). Ani v tomto se neliší Pocket PC od stolních Windows. Příklad nejjednodušší funkce dialogu pod operačním systémem Windows CE 3.0 je v následujícím rámečku; až na volání funkce SHInitDialog, která nastaví SIP panel a tlačítko OK:


BOOL CALLBACK MyDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
        case WM_INITDIALOG:
            {
                SHINITDLGINFO shidi;
                shidi.dwMask = SHIDIM_FLAGS;
                shidi.dwFlags = SHIDIF_DONEBUTTON | 
                                SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
                shidi.hDlg = hwnd;
                SHInitDialog(&shidi);
            }
            return TRUE;

        case WM_COMMAND:
            if(wParam == IDOK)
            {
                EndDialog(hwnd, TRUE);
                return TRUE;
            }
            break;

        default:
            break;
    }

    return FALSE;
}

V klasických dialozích na Pocket PC chybí tlačítko pro opuštění dialogu bez provedení změn; ani na softwarové klávesnici se nevyskytuje tlačítko ESC. Vestavěné aplikace (například databáze kontaktů) nedovolují vrátit změny, které uživatel v dialogu udělal zpět. Pro pohodlí uživatele je vhodné do dialogu doplnit vlastní tlačítko pro opuštění dialogu bez uložení změn.

Spuštění aplikace

Chcete-li, aby vaše aplikace mohl uživatel spustit z nabídky programů, musíte umístit jejich zástupce do složky \Windows\Start Menu\Programs\. Pokud uživatel aplikaci spustí, je předána kontrola funkci WinMain (podobně jako u jiných verzí Windows) a je spuštěna nová instance aplikace.

Pokud si nepřejete, aby byla spuštěna více než jedna instance vaší aplikace, je vhodné, aby vaše aplikace po spuštění zkontrolovala, zda již nebyla spuštěna jiná její kopie (voláním funkce FindWindow). Pokud nalezne svoji kopii, předá jí řízení - jinak se sama spustí.


    HWND hWnd = FindWindow(szClassName, szWindowTitle);
	
    if (hWnd)
    {
        SetForegroundWindow((HWND)((ULONG) hWnd | 0x00000001));
        return 0;
    }

Další kód funkce WinMain - vytvoření hlavního okna aplikace a smyčka zpráv - vás jistě nepřekvapí.

Aplikace, které mají svá hlavní okna na obrazovce Today, jsou spuštěné neustále.

Pokud si přejete dát uživateli na vědomí, že je vaše aplikace spuštěna v pozadí, a nabídnout mu jednoduchý způsob, jak do ní přejít, můžete umístit ikonu aplikace do systémové lišty (Tray) voláním funkce Shell_NotifyIcon.

Příště si přiblížíme ukončení aplikace a ukládání dat.





Nejčtenější

příslušenství k Samsungu Galaxy S8+
Natáhněte si na špičkový Samsung třeba mechanickou klávesnici

Vlastníci Samsungu Galaxy S8/S8+ mají spoustu možností, jakými doplňky si vylepšit svůj smartphone. Na výběr jsou různé kryty, pouzdra, sluchátka plus...  celý článek

Tchajwanský průmyslový designér Chris Wu navrhl koncept chytrých hodinek s...
Tyto chytré hodinky jsou opravdu inovativní. Mají otočný displej

Chytré hodinky s operačním systémem jsou poměrně mladou záležitostí, na trhu se objevily poprvé před čtyřmi roky. Doposud se ovšem mezi uživatele nerozšířily...  celý článek

Ilustrační snímek
Vystřelil ve striptýzovém klubu. Prý šlo o nehodu při focení selfie

Striptýzové kluby slibují nevšední zážitky, střelba mezi ně ovšem nepatří. O takový netradiční zážitek se loni 17. prosince návštěvníkům klubu Lust ve...  celý článek

LG V30
LG začalo určovat trendy. Ukazuje, jak má vypadat moderní smartphone

Z nenápadného výrobce se stal jeden z určujících producentů chytrých telefonů. Chystaná novinka to zanedlouho potvrdí.  celý článek

Android 8 se bude jmenovat po sušenkách Oreo
Android O se bude jmenovat po slepovaných sušenkách

Už je to (skoro) jasné. Nový Android, zatím známý jako O, se bude jmenovat po slepované sušence Oreo. Alespoň tomu vše nasvědčuje.   celý článek

Další z rubriky

Nové parkovací automaty v Praze
Jak zaplatit za nové parkovací zóny v Praze? Mobil je téměř nutností

Nové zóny placeného stání startují dnes v pátém a šestém pražském obvodu. Zóny jsou rozděleny na tři typy a novinkou je placení za parkování mobilem. Aplikace...  celý článek

Aplikace Facebook Messenger Lite je dostupná i v Česku
Šetří místo i data. Dietní Messenger od Facebooku je i v Česku

Facebook Messenger je jedním z nejpoužívanějších kecálků, ale ne všechny telefony si s ním poradí. Loni se tak zrodila myšlenka na odlehčenou verzi určenou pro...  celý článek

Aplikace Donald Draw: Executive Doodle umožní vytvořit (nejen) vlastní...
Vžijte se do kůže Donalda Trumpa. Vytvořte vlastní exekutivní příkaz

V aplikačních obchodech lze vybírat z nepřeberného množství mobilních aplikací, od užitečných až po zábavné. Do druhé kategorie spadají vesměs i aplikace,...  celý článek

Najdete na iDNES.cz



mobilní verze
© 1999–2017 MAFRA, a. s., a dodavatelé Profimedia, Reuters, ČTK, AP. Jakékoliv užití obsahu včetně převzetí, šíření či dalšího zpřístupňování článků a fotografií je bez souhlasu MAFRA, a. s., zakázáno. Provozovatelem serveru iDNES.cz je MAFRA, a. s., se sídlem
Karla Engliše 519/11, 150 00 Praha 5, IČ: 45313351, zapsaná v obchodním rejstříku vedeném Městským soudem v Praze, oddíl B, vložka 1328. Vydavatelství MAFRA, a. s., je členem koncernu AGROFERT.