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ší

Berte, dokud je. Mobil pro fajnšmekry po neúspěchu drasticky zlevnil

Essential PH-1

Keramické tělo, jeden z nejmodernějších procesorů, 128 GB vnitřní paměti a velký displej s tenkými rámečky a...

Konkurenci poprvé ukazuje záda, Huawei P20 Pro je nejlepší smartphone

Huawei P20 Pro

Čínský Huawei si dal letos na nových modelech řady P20 opravdu záležet. Model P20 Pro chce být tím nejlepším...



Američtí teenageři se mohou z iPhonů zbláznit. A zájem roste

iPhone 8 Plus v Drážďanech

Ve Spojených státech je mezi mladými uživateli smartphonů enormní zájem o iPhony - v současnosti je vlastní 82 procent...

Berte telefon jako kreditní kartu, radil odborník v Rozstřelu o podvodném volání

Redaktor Mobil.iDNES.cz Jan Matura (vlevo) a mluvčí Českého telekomunikačního...

V posledních dnech se opět ozvali podvodníci, kteří se snaží vydělat na snadné záměně telefonních čísel. Prozvoní vás z...

Revoluce v mobilním focení? Umí nasadit profi objektiv na smartphony

S adaptérem můžete na mobil nasadit i profesionální objektivy

Na výstavě americké Národní asociace provozovatelů vysílání v Las Vegas byl ukázán zajímavý doplněk k mobilům pro...

Další z rubriky

Online randění pozastaveno. Facebook nechtěně odstřihl uživatele od Tinderu

Aplikace Tinder

Změna bezpečnostních nastavení Facebooku v reakci na nedávné skandály s úniky dat má celkem závažný důsledek pro ty,...

Na aplikace alternativních taxi útočí virus. Pase po údajích ke kartám

Virus pro Android

Uživatelé mobilních aplikací alternativních taxi včetně aplikace Uber by měli být obezřetní. Ohrožuje je totiž nový...

Na dovolené se můžete seznámit i nespálit

Ilustrační snímek

Na dovolenou si bereme kde co, ovšem počítač/notebook často zůstává doma. Ten je na jedné straně prostředkem k...



Najdete na iDNES.cz