Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции-ТРПС.doc
Скачиваний:
13
Добавлен:
15.11.2018
Размер:
810.5 Кб
Скачать

9. Создание и использование диалоговых окон

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

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

9.1. Этапы создания диалога

9.1.1. Создание шаблона диалога

Для конструирования внешнего вида диалоговой панели обычно используют два способа:

  • первый способ размещения элементов управления предполагает использование специального редактора диалогов. Этот редактор позволяет отобразить диалоговую панель и сохранить ее текстовое описание в файле ресурсов приложения. Такой подход при создании диалогов приложений носит зачатки визуального программирования, когда внешний вид и поведение приложения определяется с помощью графических средств проектирования без традиционного программирования на каком-либо алгоритмическом языке;

  • второй способ предполагает создание шаблона диалоговой панели в оперативной памяти во время работы приложения. Этот способ более сложен и используется менее часто, обычно только в тех случаях, когда внешний вид диалоговой панели нельзя определить на этапе создания приложения.

9.1.2. Функция диалога

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

Простейшая диалоговая процедура DlgProc для модального диалога имеет следующий вид:

BOOL CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: // инициализация элементов управления return TRUE; case WM_COMMAND: { int nID = LOWORD(wParam); int nEvent = HIWORD(wParam) HWND hWndCtl = (HWND) lParam; // обработка сообщений от элементов управления return TRUE; } } return FALSE; }

Даже на первый взгляд, у функции диалога и у обычной оконной процедуры имеется много общего, однако видны и отличия. Перечислим и те, и другие.