Создание модального диалогового окна

Модальное диалоговое окно создается с помощью диалоговое окно функции. Необходимо указать идентификатор или имя ресурса шаблона поля диалогового окна и адрес процедуру диалогового окна. Диалоговое окно функция загружает шаблон, отображает диалоговое окно и обрабатывает весь ввод пользователя до тех пор, пока пользователь не закроет диалоговое окно "".

В следующем примере приложение отображает модальное диалоговое окно, когда пользователь выбирает команду Удалить элемент из меню приложений. Диалоговое окно содержит элемент управления edit (в котором пользователь вводит имя элемента) и OK и отмена кнопки. Идентификаторов элементов управления для этих элементов управления являются ID_ITEMNAME, IDOK и IDCANCEL, соответственно.

Первая часть примера состоит из заявления, которые создать модальное диалоговое окно. Эти заявления, в процедуре окна для главного окна приложения, создайте диалогового окна, когда система получает сообщения WM_COMMAND , имеющие идентификатор команды IDM_DELETEITEM. Второй частью примера является процедуру диалогового окна, которое извлекает содержимое элемента управления редактирования и закрывает диалоговое окно после получения сообщения WM_COMMAND.

Следующие инструкции создают модальным диалоговым окном. Диалогового окна поле шаблон является ресурсом в исполняемый файл приложения и имеет идентификатор ресурса DLG_DELETEITEM:

дело WM_COMMAND: переключение (LOWORD(wParam)) {IDM_DELETEITEM, дело: если (диалоговое окно (hinst, MAKEINTRESOURCE(DLG_DELETEITEM), hwnd, DeleteItemProc (DLGPROC)) == IDOK) {}
 
                    / / Полная команда; szItemName / / содержит имя элемента для / / delete. 

                }
 
                else 
                {

/ / Отменить команду. 

                } 
                break; 
        } Возвращает 0 Л 
 

В этом примере приложение определяет его главное окно как окно-владелец для диалогового окна. Когда система изначально отображает диалоговое окно, его положение панели задается верхний левый угол клиентской области окна-владельца. Приложение использует значение, возвращаемое методом диалоговое окно для определения необходимости запустить с помощью команды, или отменить его. Следующие операторы определяют процедуру диалогового окна.

szItemName char [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