Modalnego okna dialogowego można utworzyć za pomocą funkcji DialogBox . Należy określić identyfikator lub nazwa zasobu szablonu pole dialogowe i adres procedury pole dialogowe. Funkcja DialogBox ładuje szablonu, wyświetla okno dialogowe i przetwarza wszystkie dane wejściowe użytkownika, dopóki użytkownik nie zamknie okno dialogowe.
W poniższym przykładzie aplikacja wyświetla modalnego okna dialogowego, gdy użytkownik wybierze polecenie Usuń element z menu aplikacji. Okno dialogowe zawiera formant edycyjny (w którym użytkownik wpisuje nazwę elementu) OK i Anuluj przycisków. Identyfikatory sterowania za te kontrole są odpowiednio ID_ITEMNAME, IDOK i IDCANCEL,.
Pierwsza część przykładzie składa się z instrukcji, które utworzyć modalnego okna dialogowego. Oświadczenia te procedury okna głównego okna aplikacji, tworzenie okna dialogowego gdy system odbierze komunikat WM_COMMAND , posiadające identyfikator polecenia IDM_DELETEITEM. Druga część przykładzie jest procedury pole dialogowe, która pobiera zawartość formantu edycyjnego i zamyka okno dialogowe po otrzymaniu wiadomości WM_COMMAND.
Poniższe instrukcje tworzenia modalnego okna dialogowego. Szablon pola dialogowe zasób w pliku wykonywalnego aplikacji i ma identyfikator zasobów DLG_DELETEITEM:
sprawa WM_COMMAND: przełącznik (LOWORD(wParam)) {Sprawa IDM_DELETEITEM: Jeśli (DialogBox (hinst, MAKEINTRESOURCE(DLG_DELETEITEM), hwnd, DeleteItemProc (DLGPROC)) == IDOK) {}
/ / Ukończyć polecenia; szItemName / / zawiera nazwę towaru / / delete.
}
else
{
/ / Anulować polecenie.
}
break;
} zwraca 0 L
W tym przykładzie Aplikacja identyfikuje jej głównego okna w oknie właściciela dla okna dialogowego. Gdy system początkowo wyświetla okno dialogowe, jego sytuacja jest względem lewego górnego rogu obszaru klienckiego okna właściciela. Aplikacja używa wartość zwracany z DialogBox , aby określić, czy należy kontynuować polecenie albo anuluj ją. Poniższe instrukcje definiują procedurę pole dialogowe.
char szItemName [80]; / / otrzymuje nazwę elementu do usunięcia.
BOOL wywołania zwrotnego DeleteItemProc (hwndDlg, wiadomości, wParam, fikcyjnymi) HWND hwndDlg;
UINT wiadomości;
WPARAM wParam;
FIKCYJNYMI fikcyjnymi;
{przełącznika (wiadomości) {Sprawa WM_COMMAND: przełącznik (LOWORD(wParam)) {Sprawa IDOK: if (!GetDlgItemText (hwndDlg, ID_ITEMNAME, szItemName, 80)) * szItemName = 0;
/ / Przechodzić.
Sprawa IDCANCEL: EndDialog (hwndDlg, wParam);
Zwraca wartość PRAWDA;
}} Zwraca FALSE;
}
W tym przykładzie procedura używa GetDlgItemText pobrać bieżący tekst z formantu edycyjnego zidentyfikowane przez ID_ITEMNAME. Procedura wywołuje funkcję EndDialog , aby ustawić wartość zwracany okno dialogowe IDOK lub IDCANCEL, w zależności od Odebrano wiadomość i rozpocząć proces zamykania okna dialogowego. Identyfikatory IDOK i IDCANCEL odpowiadają przyciski OK i Anuluj. Po procedura wywołuje EndDialog, system wysyła komunikaty dodatkowe procedury do zniszczenia okno dialogowe i zwraca wartość zwracany okno dialogowe funkcji, utworzony przez okno dialogowe.