Створення модальне діалогове вікно

Створити модальне діалогове вікно за допомогою DialogBox функції. Необхідно вказати ідентифікатор або ім'я діалоговому вікні шаблон ресурсу та адресу діалоговому вікні процедури. Функція DialogBox навантажень шаблон, відображається діалогове вікно та обробляє всі введення даних, поки користувач не закриє діалогове вікно.

У наведеному нижче прикладі програма відображає модальне діалогове вікно, коли користувач вибирає команду Видалити елемент із меню. Діалогове вікно містить поля (в якому користувач вводить ім'я елемента) і ОК і кнопки Скасувати. Керування ідентифікаторів для цих елементів керування є ID_ITEMNAME, IDOK та IDCANCEL, відповідно.

Перша частина приклад складається з заяв, які створюють модальне діалогове вікно. Ці заяви, у вікні порядок головне вікно програми, створити діалогове вікно коли система отримує WM_COMMAND повідомлення мають ідентифікатор команди IDM_DELETEITEM. Друга частина прикладом є діалоговому вікні процедури, яка завантажує вміст редагувати елемент керування та закриває діалогове вікно після отримання повідомлення WM_COMMAND.

Такі заяви створити модальне діалогове вікно. Ресурс виконуваного файлу програми, у діалоговому вікні шаблон і має ідентифікатор ресурсів DLG_DELETEITEM:

справа WM_COMMAND: перемикання (LOWORD(wParam)) {випадку IDM_DELETEITEM: Якщо (DialogBox (hinst, MAKEINTRESOURCE(DLG_DELETEITEM), hwnd, DeleteItemProc (DLGPROC)) = = IDOK) {
 
                    / / Завершення команди; szItemName / / містить ім'я елемента / / видалити. 

                }
 
                else 
                {

/ / Скасування команди. 

                } 
                break; 
        } повернення 0 L 

 

У цьому прикладі застосування ідентифікує її головне вікно, як для діалогового вікна власника. Коли система спочатку відображається діалогове вікно, його розташування є відносно лівому верхньому куті області вікна власник клієнта. Застосування використовує значення з DialogBox , щоб визначити, чи потрібно продовжити з командою або скасуйте його. Такі заяви визначення процедури діалоговому вікні.

cHAR szItemName [80]; / / отримує ім'я елемент для видалення. 
 
BOOL зворотного ВИКЛИКУ DeleteItemProc (hwndDlg, повідомлення, wParam, lParam) HWND hwndDlg; 
UINT повідомлення; 
WPARAM wParam; 
LPARAM lParam; 
{перемикач (повідомлення) {випадку WM_COMMAND: перемикання (LOWORD(wParam)) {випадку IDOK: Якщо (!GetDlgItemText (hwndDlg, ID_ITEMNAME, szItemName, 80)) * szItemName = 0; 
 
                    / / Провалитися. 
 
                справа IDCANCEL: EndDialog (hwndDlg, wParam); 
                    повертає TRUE; 
            }} Повертає FALSE; 
} 

 

У цьому прикладі процедура використовується GetDlgItemText для отримання поточного тексту з редагувати елемент керування, визначені ID_ITEMNAME. Процедура потім викликає функцію EndDialog , щоб установити значення діалоговому вікні IDOK або IDCANCEL, залежно від того, повідомлення, отримані і почати процес закриття діалогового вікна. IDOK і IDCANCEL ідентифікатори відповідають кнопки ОК і скасувати. Після процедури закликає EndDialog, система надсилає додаткові повідомлення в порядку, щоб знищити діалогове вікно та повертає діалоговому вікні значення, яке повертається функцією, створених у діалоговому вікні.

Index