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říchod sítí 5G je plánován na rok 2020
Nástup sítí 5G je zase o něco blíže. První vysílače jsou už postavené

Berlín Příchod sítí 5G je plánován až na rok 2020, ale k důležitým milníkům dochází už teď. Společnost Deutsche Telekom spustila první evropské vysílače umožňující...  celý článek

iPhone 8 Plus
iPhone 8 je tak výkonný, že tomu nevěřil ani tvůrce testu Geekbench

Výkon nového procesoru A11 Bionic od Applu vyrazil dech i tvůrci benchmarku Geekbench. Nedokáže pochopit, že smartphony s Androidem tak zaostávají.   celý článek

iPhone X
Je to konec mýtické čtečky v displeji? Výrobci sázejí na obličej

Čtečka otisků integrovaná do displeje měla být jednou z hlavních letošních inovací na poli smartphonů. Technologie je ovšem natolik složitá, že výrobci od...  celý článek

Portfolio smartphonů Samsung
Devět letošních Samsungů, který je nejzajímavější?

Samsung letos na našem trhu uvedl celkem 9 různých modelů napříč řadami J, A, S a Xcover. Měli jsme v redakci unikátní příležitost nafotit je všechny pohromadě...  celý článek

Nokia 7
Nokia má novou sedmičku. Výbavou zaujme, cenou spíše ne

Další přírůstek do rodiny obnovené značky Nokia nese pořadovou číslovku sedm a vyplňuje prostor mezi střední třídou v podobě Nokie 6 a špičkovou Nokií 8. Její...  celý článek

Další z rubriky

Ilustrační snímek
S těmito aplikacemi se o dovolené neztratíte. Najdou let i levný hotel

Místo slovníku, mapy a průvodce už řada lidí vyráží na dovolenou na neznámé místo jen se svým telefonem. V mnoha situacích je totiž neocenitelným pomocníkem....  celý článek

Ilustrační snímek
Nikam nevolali, přesto mají platit tisíce. Oškubala je „astro aplikace“

Tváří se jako rozšíření oblíbené mobilní hry, ve skutečnosti však ukrývá škodlivý kód. Ten bez vědomí uživatele uskutečňuje hovory na audiotexové linky, které...  celý článek

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

Uživatelé mobilních aplikací alternativních taxi včetně aplikace Uber by měli být obezřetní. Ohrožuje je totiž nový trojský kůň, který od uživatelů láká údaje...  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.