Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба5.doc
Скачиваний:
4
Добавлен:
12.11.2019
Размер:
976.9 Кб
Скачать

2.1. Описание диалогового окна в файле ресурсов

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

Диалоговые окна определяются в файле ресурсов при помощи оператора DIALOG. Общий вид конструкции таков:

Имя-окна DIALOG [опции] X, Y, Width, Height

Характеристики

{

Элементы-окна

}

Параметр Имя-окна задает имя диалогового окна. Верхний левый угол окна будет расположен в точке с координатами (X,Y), а размер окна определяется параметрами Width (ширина) и Height (высота). Различные опции, которые определяют загрузку диалогового окна в память и его удаление из нее, указываются в параметре опции. Однако при работе в Win32 большинство опций игнорируется. Единственной разрешенной опцией является DISCARDABLE. Она позволяет удалять диалоговое окно из памяти, если оно больше не используется. Кроме того, может быть задана одна или несколько характеристик диалогового окна. К ним, в частности, относятся заголовок и стиль окна. В поле Элементы-окна приводятся определения элементов управления, содержащихся в диалоговом окне.

Пример описания:

IDD_DIALOG1 Dialog 20, 20, 130, 60

Style WS_POPUP | DS_MODALFRAME | WS_VISIBLE | WS_CAPTION

Caption "Settings"

Font 10, "MS Sans Serif"

Begin

CText "Text", IDD_TEXT1, 5, 5, 120, 12

EditText IDD_EDIT1, 5, 20, 120, 12

PushButton "Cancel", IDD_CANCEL, 65, 40, 60, 12

PushButton "OK", IDD_OK, 5, 40, 60, 12

End

Итак, порядок работы с диалоговыми окнами можно определить следующим образом:

  1. Описание диалогового окна в файле ресурсов. Все идентификаторы элементов управления и диалогового окна должны быть определены в заголовочном файле, по умолчанию - resource.h.

  2. Добавление в программу функцию диалогового окна, которая будет обрабатывать его сообщения.

  3. Включить в программу, где это необходимо, вызов диалогового окна: макрос DialogBox в случае модального диалогового окна и макрос CreateDialog в случае немодального диалогового окна.

  4. Включить в программу, где это необходимо, вызовы функций для получения (функция GetDlgItemText и т.п.) и помещения данных (функция SetDlgItemText т.п.) в диалоговое окно.

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

Описание диалогового окна в файле ресурсов было описано выше поэтому сразу перейдем ко второму пункту - функция диалогового окна.

Функция диалогового окна предназначена для обработки сообщений диалогового окна и имеет следующий прототип:

BOOL CALLBACK Dlg_Proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam),

который обычно помещают в начале программы.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]