Для чего нужны диалоговые окна

Что такое диалоговое окно? Разделы диалогового окна

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

Особенности и внешний вид

Внешне этот элемент интерфейса похож на стандартное окно Windows. В нем также присутствует строка заголовка, потянув за который, можно перенести окно в любое место экрана. Но есть и отличия. Диалоговое окно имеет фиксированный размер – его нельзя развернуть или свернуть. Также в верхнем правом углу часто находится иконка в виде знака вопроса. Щелчок по ней открывает справку по работе с конкретным элементом.

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

Окно сообщений

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

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

Часто это просто информационное сообщение, например, об окончании компьютерной игры, и тогда от пользователя потребуется только нажать кнопку «OK».

Ввод информации

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

Сохранение/открытие файла

Кто хоть раз создавал документ, тот неизбежно сталкивался с окном этого типа. От пользователя требуется выбрать файл из иерархического списка или указать место на диске, куда его следует сохранить. В окне предусмотрена возможность сортировки файлов, представление их в наиболее удобном виде, создание (при необходимости) новой папки.

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

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

Диалоговое окно печати документа

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

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

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

Вкладки

Они играют ту же роль, что и меню в стандартных окнах. С их помощью разделы диалогового окна компонуются в логические группы. Это облегчает работу пользователя – ему не приходится многократно открывать разные элементы. За счет этого также упрощается структура основного меню программы. Из диалогового окна можно с помощью кнопок вызвать дополнительные элементы, если опций вкладок будет недостаточно.

Фрейм

Это альтернативный вкладке способ создать раздел в диалоговом окне. Обычно фрейм располагается в левой части окна и содержит список разделов. Выделив такой раздел, пользователь в правой части может работать с его настройками. Количество разделов во фрейме может быть любым. Если они не помещаются в окне, доступ получается с помощью полосы прокрутки.

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

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

Раздел в диалоговом окне может быть создан либо через вкладки, либо с помощью фрейма, но не одновременно. На практике вкладки получили большее распространение.

Элементы управления

Коротко скажем о других элементах, которые могут присутствовать:

1. Командные кнопки диалогового окна. Служат для запуска какого-нибудь действия. Это может быть открытие другого окна или выполнение процедуры.

2. Переключатели. Позволяют выбрать один вариант из набора значений.

3. Флажки. С их помощью можно отметить несколько вариантов из предложенных или отказаться от всех.

4. Поле со списком. Содержит данные, собранные в строки. От пользователя требуется выбрать одну из них.

5. Текстовые поля. Предназначены для ввода в них произвольного текста или числовых данных.

6. Ползунок. Позволяет задать числовое значение параметра из заданного диапазона.

7. Счетчик. Служит для выбора целочисленного значения.

8. Полосы прокрутки. Бывают вертикальными и горизонтальными. Применяются, когда часть формы не помещается в окне.

9. Метка. Элемент, отвечающий за надписи на форме.

10. Линии, рамки, рисунки. Это декоративные элементы. Позволяют сгруппировать данные и сделать окно более красочным.

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

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

Клавиатурные комбинации

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

Дизайн окон

Если внешний вид окон кажется вам слишком будничным, есть несколько способов изменить его. На рабочем столе вызовите контекстное меню и выберите пункт «Свойства». Далее пройдите на вкладку «Оформление». Здесь можно изменить стиль окна, размер шрифта и цветовую гамму.

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

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

Источник

Для чего нужны диалоговые окна

B.10.2. Диалоговые окна и операционные системы.

Диалоговое окно является отдельным ресурсом приложения: оно обычно не создается средствами приложения, а загружается в готовом виде по требованию приложения, которое отводит ему на период работы ресурсы компьютера (оперативную и видеопамять), а после закрытия диалоговое окно сообщает приложению о результате своей работы.

Большинство диалоговых окон являются модальными, то есть невозможно продолжить работу с приложением, не закончив работу с диалоговым окном. При этом в другие приложения чаще всего можно переключиться!

B.10.3. Окна сообщений.

К модальным окнам следует отнести окна сообщений операционных систем (messagge box), являющиеся как бы простейшими диалоговыми окнами операционной системы. Как правило, окно-сообщение представляет собой прямоугольник с пиктограммой, содержащий, кроме нее, текст сообщения, и одну или несколько кнопок. Пиктограмма указывает, к какому классу следует отнести данное сообщение (информация, запрос, предупреждение), а кнопками выбирают ту или иную команду в ответ на заданное сообщение.

Кнопка Отмена (Cancel) вызывает отмену действия, вызвавшего появление этого окна-сообщения. При ее нажатии приложение возвращается к исходным параметрам, а окно пропадает.

B.10.4. Основные кнопки диалогового окна.

Как правило, в любом диалоговом окне всегда содержаться следующие кнопки.

Кнопка «OK» («Готово»). Предназначена для закрытия диалогового окна с внесенными в него изменениями.

Кнопка «Cancel» («Отмена»). Предназначена для выхода из окна без сохранения введенных изменений. За ней закреплена клавиша Esc на клавиатуре.

Кнопка «Help» («Помощь», «Подсказка») Выдает справку о диалоговом окне и его элементах управления.

B.10.5. «Закладка» в диалоговом окне.

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

В продуктах фирмы Microsoft закладки используются только в диалоговых окнах, тогда как в операционной системе OS/2 Warp они практически заменили такой элемент графического интерфейса, как меню.

В операционной системе SGI IRIX закладки используются редко; чтобы уместить в диалоговом окне все элементы управления, диалоговые окна, как и перекрывающиеся, имеют полосу прокрутки.

B.10.6. Выбор элементов управления в диалоговом окне.

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

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

После установки опций нужным образом необходимо нажать кнопку Готово (Ok) или нажать клавишу Enter.

B.10.7. Примеры диалоговых окон

Для примера рассмотрим диалоговые окна «Открытие документа», «Сохранение документа», «Найти и Заменить» пакета Microsoft Office 97, как наиболее часто используемые.

B.10.7.1. Пример окна «ОТКРЫТИЕ ДОКУМЕНТА».

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

Рис. B.11. Окно «Открытие документа».

В заголовке окна написано его назначение (текст «Открытие документа»). Справа в прямоугольнике заголовка находятся кнопка со знаком вопроса (аналог кнопки «Помощь» в старых версиях пакета) и кнопка закрытия окна (дублирует кнопку «Отмена»).

Сразу же под заголовком в верхней строке рабочего поля находятся (слева направо):

а) Комбинированный список с указанием текущей папки (обычно это папка «Мои документы»). При открытии этого списка появляются все вышележащие папки и устройства, на которые можно перейти, выбрав их мышью.

б) Кнопка перехода на один уровень вверх по дереву папок. Например: если папка «Мои документы» находилась в папке «MS Office», то нажатие на эту кнопку выведет список файлов и папок, находящихся в папке MS Office. Среди них будет и папка «Мои документы»

д) Кнопка «Свойства» позволяет просмотреть свойства выбранного файла.

е) Четыре кнопки, задающие режимы отображения списка файлов.

Ниже в рабочей области окна идет собственно список файлов и папок, режим отображения которых определяется указанными выше четырьмя кнопками. Отметим, что в этом списке выделенный элемент (файл или папку) можно тут же переименовать.

Справа от окна списка находятся: кнопка Готово для открытия выбранного (или выбранных) файлов, кнопка Отмена для выхода из окна без открытия файла, и кнопка Отбор. вызывающие диалоговое окно для поиска файлов (описание смотри в документации по MS Office 97).

Далее под окном списка находятся:

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

и) Строка редактирования «текст/свойство». Здесь задается одно из ключевых слов, которое должно обязательно находиться в тексте. Обычно оно пустое.

B.10.7.2. Пример окна «СОХРАНЕНИЕ ДОКУМЕНТА».

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

Рис. B.12. Окно «Сохранение документа»

Для сохранения вновь созданного документа в первый раз, а также для сохранения текущего документа MSOffice под другим именем используется диалоговое окно сохранения документа. С его помощью можно указать имя и тип сохраняемого документа, а также выбрать папку для его записи.

Это диалоговое окно имеет в Microsoft Office 97 следующий вид: в прямоугольнике заголовка написано «Сохранение документа». Там же, справа от заголовка, содержатся две кнопки: со знаком вопроса и перекрестием. Их назначение и работа с ними совпадает с назначением и работой тех же кнопок в диалоговом окне «Открытие документа». Сразу ниже строки заголовка находятся:

а) комбинированный список, указывающий текущую папку, в которую будет сохраняться документ (см. пункт а) выше).

б) кнопка перехода в родительскую папку (см. выше п. б))

в) Кнопка перехода в папку «Избранное» (см. выше п. г))

г) Кнопка создания новой папки внутри текущей. После нажатия этой кнопки в списке файлов и папок появляется новая папка без имени. Имя новой папки предлагается ввести в списке файлов и папок сразу после ее создания. Повторный выбор этой папки клавишей мыши или нажатие клавиши Enter приведет к фиксации имени этой новой, пустой папки.

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

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

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

1) Всегда делать резервные копии. Иногда бывает, что в документ вводятся большие изменения, а они оказались ошибочными. В этом случае можно загрузить резервную копию.

3) Документ можно защитить паролем для предотвращения несанкционированного доступа. Пароли устанавливаются отдельно на чтение и запись файла.

ж) комбинированный список «Тип файла». При его выборе появится список расширений файлов, определяющий тип хранения данных. В окне-списке файлов будут отображаться только файлы с типом, указанном в этой строке. При указании имени файла его тип (то есть расширение) обычно добавляется к нему автоматически.

Других элементов у этого диалогового окна нет.

B.10.7.3. Приемы работы с диалоговыми окнами «НАЙТИ», «ЗАМЕНИТЬ» и «ПЕРЕЙТИ К. «.

Иногда необходимо найти слово или группу символов в тексте. Для настройки параметров поиска служит специальное диалоговое окно. Для поиска и одновременной замены символов на другие используется диалоговое окно «Заменить».

В Word 97 для этих целей служит диалоговое окно «Найти и заменить» с закладками Найти, Заменить и Перейти.

В других системах для этого служат отдельные диалоговые окна.

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

Рис. B.13. Окно «Найти» в Microsoft Word 97

В окне «Найти» предлагается ввести группу символов, которые необходимо найти. Эти символы набираются в строке редактирования, совмещенным с комбинированным списком. Можно либо вводить нужные символы, либо с помощью комбинированного списка выбрать ранее введенные символы. Справа от этой строки расположены кнопки «Найти далее», осуществляющая поиск символа, «Отмена» отменяющая поиск и «Больше», устанавливающая параметры поиска. Эти параметры следующие: поиск вниз по тексту или вверх по тексту, учитывается или нет регистр символов, условия поиска (ищутся ли совпадающие группы символов, целое слово или т.н. регулярные выражения). Если установлена опция «регулярное выражение», то возможен поиск по шаблону (как поиск файлов по шаблону имени).

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

Рис. B.14. Окно «Заменить» в Microsoft Word 97.

Диалоговое окно «Заменить» содержит строку ввода символов, которые нужно найти (аналогично окну «Найти»). Строку ввода для символов, которыми нужно заменить найденные символы.

Правее расположены переключатели «и»:

а) учет регистра (делает различие между строчными и прописными буквами)

б) Только слово целиком

в) Подстановочные знаки (шаблоны)

С помощью диалоговых окон можно найти и заменить не только символы, но и формат их представления (группы, стиль, абзацный отступ и т.д.) Для этого в Word 97 служат кнопки «Снять форматирование», «Формат» и «Специальный» внизу окна диалога: описание работы смотри по контекстной справке.

Для чего нужны диалоговые окна. Смотреть фото Для чего нужны диалоговые окна. Смотреть картинку Для чего нужны диалоговые окна. Картинка про Для чего нужны диалоговые окна. Фото Для чего нужны диалоговые окна

Рис. B.15. Окно «Перейти в Microsoft Word 97.

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

B.10.8. Резюме.

Итак, мы познакомились со всеми элементами графического интерфейса. Вы научились распознавать элементы графического интерфейса и работать с ними. В последней главе Вы познакомились с диалоговыми окнами и закладками. Теперь Вас не должно привести в смущение ни одно диалоговое окно.

Источник

диалоговые окна «О программе»

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

Этот обзор включает в себя следующие разделы:

Дополнительные сведения об общих диалоговых окнах см. в разделе Библиотека общих диалоговыхокон.

Когда следует использовать диалоговое окно

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

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

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

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

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

Окно «владелец» диалогового окна

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

Система автоматически скрывает или уничтожает диалоговое окно при каждом скрытии или удалении его владельца. Это означает, что процедура диалогового окна не требует специальной обработки для обнаружения изменений в состоянии окна «владелец».

Так как типичное диалоговое окно используется вместе с пунктом меню, окно-владелец обычно является окном, содержащим меню. Хотя можно создать диалоговое окно, не имеющее владельца, не рекомендуется. Например, когда модальное диалоговое окно не имеет владельца, система не отключает ни одного из других окон приложения и позволяет пользователю продолжать работу в других окнах, не отменяя назначение модального диалогового окна.

Когда немодальное диалоговое окно не имеет владельца, система не скрывает и не уничтожает диалоговое окно, когда другие окна в приложении скрыты или уничтожены. Хотя это не нарушает назначение немодального диалогового окна, оно требует, чтобы приложение выполняло специальную обработку, чтобы убедиться, что диалоговое окно скрыто и удалено в нужное время.

Окна сообщений

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

Окно сообщения является модальным диалоговым окном, и система создает его с помощью тех же внутренних функций, которые диалогбокс использует. Если приложение задает окно владельца при вызове MessageBox или мессажебоксекс, система отключает владельца. Приложение может также направлять систему для отключения всех окон верхнего уровня, принадлежащих текущему потоку, указывая значение MB _ таскмодал во время создания диалогового окна.

Система может передавать сообщения владельцу, таким как WM _ Канцелмоде и WM _ Enable, точно так же, как при создании модального диалогового окна. Окно владельца должно выполнять все действия, запрошенные этими сообщениями.

Модальные диалоговые окна

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

Если окно «владелец» еще не отключено, система автоматически отключает окно и все дочерние окна, принадлежащие ему, при создании модального диалогового окна. Окно владельца остается неактивным до тех пор, пока не будет удалено диалоговое окно. Несмотря на то, что процедура диалогового окна потенциально может включить окно владельца в любое время, при включении владельца не рекомендуется использовать модальное диалоговое окно. При удалении процедуры диалогового окна система снова включает окно «владелец», но только в том случае, если в модальном диалоговом окне был отключен владелец.

По мере того как система создает модальное диалоговое окно, оно отправляет сообщение WM _ канцелмоде в окно (при наличии), в текущий момент записывающее ввод мыши. Приложение, получающее это сообщение, должно освободить захват мыши, чтобы пользователь мог переместить указатель мыши в модальном диалоговом окне. Так как система отключает окно «владелец», все входные данные мыши теряются, если владелец не может отпустить указатель мыши при получении этого сообщения.

Немодальные диалоговые окна

Немодальное диалоговое окно не отключает окно владельца и не отправляет ему сообщения. При создании диалогового окна система делает его активным, но пользователь или приложение может изменить активное окно в любое время. Если диалоговое окно становится неактивным, оно остается над окном «владелец» в Z-порядке, даже если окно «владелец» активно.

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

Шаблоны диалоговых окон

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

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

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

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

В следующих разделах описываются стили, измерения и другие значения, используемые в шаблоне диалогового окна.

Стили шаблонов диалоговых окон

Каждый шаблон диалогового окна задает сочетание значений стиля, определяющих внешний вид и возможности диалогового окна. Значения стиля могут быть стилями окна, такими как _ «всплывающее окно» и « WS _ сисмену«, а также стилями диалоговых окон, такими как DS _ модалфраме. Количество и тип стилей для шаблона зависит от типа и назначения диалогового окна. Список значений см. в разделе стили диалоговых окон.

Система передает все стили окна, указанные в шаблоне, в функцию CreateWindowEx при создании диалогового окна. Система может передать один или несколько расширенных стилей в зависимости от указанных стилей диалогового окна. Например, если шаблон указывает DS _ модалфраме, система использует WS _ ex _ длгмодалфраме при создании диалогового окна.

Измерения диалоговых окон

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

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

Элементы управления диалогового окна

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

Шаблон задает класс окна для каждого элемента управления. Типичное диалоговое окно содержит элементы управления, принадлежащие предопределенным классам окон элементов управления, например классы кнопок и окон редактирования. В этом случае шаблон задает классы окон, предоставляя соответствующие стандартные значения Atom для классов. Если диалоговое окно содержит элемент управления, принадлежащий классу окна пользовательского элемента управления, шаблон выдает имя зарегистрированного класса окна или значение Atom, которое в настоящее время связано с именем.

Чтобы разрешить пользователю закрыть диалоговое окно, шаблон должен указать по крайней мере одну кнопку отправки и присвоить ей идентификатор элемента управления идканцел. Чтобы позволить пользователю выбирать между завершением или отменой задачи, связанной с диалоговым окном, шаблон должен указать две кнопки Push-уведомлений с метками » ОК » и «Отмена» с идентификаторами элементов управления идок и идканцел соответственно.

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

Меню окна диалогового окна

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

Шрифты диалогового окна

Чтобы указать шрифт для диалогового окна, отличного от значения по умолчанию, необходимо создать диалоговое окно с помощью шаблона диалогового окна. В ресурсе шаблона используйте инструкцию Font. В шаблоне диалогового окна задайте домен DS _ Сетфонт или DS _ шеллфонт и укажите размер точки и имя гарнитуры. Даже если шаблон диалогового окна задает шрифт таким образом, система всегда использует системный шрифт для меню «заголовок диалогового окна» и «диалоговое окно».

Шрифт системы может различаться в разных версиях Windows. Чтобы приложение использовало системный шрифт независимо от того, на какой системе он работает, используйте DS _ шеллфонт с гарнитурой MS Shell Dlg и используйте ресурс диаложекс вместо ресурса диалогового окна. Система сопоставляет эту гарнитуру, чтобы в диалоговом окне использовался шрифт Tahoma. Обратите внимание, что служба DS _ шеллфонт не действует, если гарнитура не является MS Shell Dlg.

Шаблоны в памяти

Для различения стандартного шаблона и расширенного шаблона Проверьте первые 16 бит шаблона диалогового окна. В расширенном шаблоне первое слово — 0xFFFF; любое другое значение указывает на стандартный шаблон.

Заголовок шаблона

В стандартных и расширенных шаблонах для диалоговых окон заголовок содержит следующие общие сведения:

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

Определения элементов управления

В стандартном и расширенном шаблонах определение элемента управления включает следующие сведения:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *