Vytvorenie Modálne dialógové okno

Môžete vytvoriť modálnym dialógovým oknom pomocou funkcie DialogBox . Musíte zadať identifikátor alebo názov prostriedku, šablóna dialógové okno pole a adresu dialógové okno pole postup. Funkcia DialogBox načíta šablóny, zobrazí dialógové okno a spracováva všetky vstup používateľa, kým používateľ zavrie dialógové okno.

V nasledujúcom príklade, aplikácia zobrazí modálnym dialógovým oknom, keď používateľ vyberie príkaz Odstrániť položky z menu aplikácie. Dialógové okno obsahuje ovládací prvok úpravy (v ktorom používateľ zadá názov položky) a OK a zrušiť tlačidlá. Kontrola identifikátory pre tieto ovládacie prvky sú ID_ITEMNAME, IDOK a IDCANCEL,.

Prvá časť príklad pozostáva z vyhlásenia, ktoré vytvárajú modálnym dialógovým oknom. Tieto výkazy okno postupu pre hlavné okno aplikácie dialógové okno vytvorte keď systému obdrží správu WM_COMMAND so IDM_DELETEITEM príkaz identifikátor. Druhá časť príklad je dialógové okno pole postup, ktorý načíta obsah upraviť kontroly a zatvorí dialógové okno po obdržaní správy WM_COMMAND.

Tieto konštatovania vytvoriť modálnym dialógovým oknom. Dialógové okno pole Šablóna je prostriedok v uplatňovaní spustiteľný súbor a má zdrojový identifikátor DLG_DELETEITEM:

prípad WM_COMMAND: prepínanie (LOWORD(wParam)) {prípad IDM_DELETEITEM: Ak (DialogBox (hinst, MAKEINTRESOURCE(DLG_DELETEITEM), hwnd, DeleteItemProc (DLGPROC)) == IDOK) {
 
                    / / Dokončiť príkaz; szItemName / / obsahuje názov tovaru / / delete. 

                }
 
                else 
                {

/ / Zrušiť príkaz. 

                } 
                break; 
        } vrátiť 0 L 
 

V tomto príklade uplatňovanie identifikuje jej hlavné okno ako vlastník okno dialógového okna. Keď systému najprv zobrazí dialógové okno, jeho pozícia je relatívna vzhľadom na ľavý horný roh oblasti vlastník okna klienta. Aplikácia používa vrátenej hodnoty z DialogBox určiť, či chcete pokračovať príkaz alebo zrušiť. Tieto výkazy definovať postup rámček dialógového okna.

znak-szItemName [80]; / / dostane názov položky chcete odstrániť. 
 
Spätné volanie BOOL DeleteItemProc (hwndDlg, správy, wParam, lParam) HWND hwndDlg; 
UINT správa; 
WPARAM wParam; 
LPARAM lParam; 
{prepínač (správa) {prípad WM_COMMAND: prepínanie (LOWORD(wParam)) {prípad IDOK: if (!GetDlgItemText (hwndDlg, ID_ITEMNAME, szItemName, 80)) * szItemName = 0; 
 
                    / / Padnúť. 
 
                prípad IDCANCEL: EndDialog (hwndDlg, wParam); 
                    Vráti hodnotu pravda; 
            }} Vráti FALSE; 
} 
 

V tomto príklade postup používa GetDlgItemText na načítanie súčasný text z úpravy kontrolou označeného ID_ITEMNAME. Postup potom volá funkciu EndDialog nastaviť dialógovým oknom vrátenej hodnoty IDOK alebo IDCANCEL, v závislosti na správa prijatá a začať proces zavretia dialógového. IDOK a IDCANCEL identifikátory zodpovedajú tlačidlá OK a zrušiť. Po postupu si vyžaduje EndDialog, systému odošle postup zničiť dialógového okna ďalšie správy a vráti dialógovým oknom vrátenej hodnoty späť na funkciu, ktorú vytvorili dialógovom okne.

Index