Диалоговое окно

Рис. 7.1. Диалоговое окно Шаблон диалога задается, как и меню, в файле ресурсов. Диалоговое окно выводится на экран функциями DialogBoxParam( ) и CreateDi а 1 ogParam( ). Первая функция создает модальный диалог, который переключает обработку сообщений от внешних устройств на собственный цикл опроса очереди и до закрытия диалога не позволяет переместить щелчком мыши фокус ввода на основное окно. Вторая функция создает немодальный диалог, который получает сообщения от мыши из основного цикла опроса очереди. Щелчком мыши пользователь может переключать фокус ввода между основным окном и немодальными диалоговыми окнами.

Шаблон показанного на рисунке диалогового окна задается в файле ресурсов, как показано в листинге 7.1.

Листинг 7.1

DIALOGMIN DIALOG 10. 10. 160. 60

STYLE DS_M0DALFRAME| WS_P0PUP| WS_VISIBLE| WS_CAPTI0N| WS_SYSMENU CAPTION "Пример диалогового окна" FONT 8. "MS Sans Serif" BEGIN

DEFPUSHBUTTON "OK". IDOK. 24. 38. 50. 14 ' PUSHBUTTON "Cancel". IDCANCEL. 89. 38. 50. 14 END

Диалоговые окна

В первой строке указываются присвоенный программистом идентификатор ресурса (DIALOGMIN), тип ресурса (DIALOG) и положение окна в рабочей области. После этого указываются уже известные нам флаги стиля окна, текст области заголовка, размер и тип шрифта. Строками, заключенными между BEGIN и END, перечисляются дочерние окна, которые будут размещены в окне диалога. В данном случае это два окна класса button с названиями OK, Cancel и идентификаторами IDOK, ID2. Константа ID2 будет помещена редактором ресурсов в файл resource.h, a ID0K - нет, так как она уже определена в файле winuser.h.

Указанный текст нет смысла вставлять в файл ресурсов при помощи текстового редактора, так как редактор ресурсов предоставляет визуальную технологию для описания диалогового окна и размещения на нем графических управляющих элементов. Редактор ресурсов позволяет сформировать внешний вид диалога, размещая в диалоговом окне изображения управляющих элементов. Для каждого элемента можно вызвать окно свойств, определяющих его поведение. Например, обычная кнопка имеет в шаблоне тип PUSHBUTTON, но при задании свойства Default Button кнопка с идентификатором ID0K задается следующей строкой"opengl4_114.html">⇐ Предыдущая| |Следующая ⇒