Рекомендации по программированию диалоговых окон
В этом обзоре рассматриваются некоторые вопросы программирования, касающиеся диалоговых окон.
Обзор включает в себя следующие разделы.
Процедуры диалоговых окон
Каждая процедура диалогового окна имеет следующий вид:
Параметры процедуры служат той же цели, что и в процедуре окна, при этом параметр хвнддлг получает маркер окна диалогового окна.
_Сообщение ИНИТДИАЛОГ WM
Система не отправляет сообщение о _ создании WM в процедуру диалогового окна. Вместо этого он отправляет сообщение WM _ инитдиалог при создании диалогового окна и всех его элементов управления, но перед отображением диалогового окна. Процедура должна выполнить инициализацию, необходимую для того, чтобы в диалоговом окне отображались текущие параметры, связанные с задачей. Например, если диалоговое окно содержит элемент управления для отображения текущего диска и каталога, процедура должна определить текущий диск и каталог и задать это значение для элемента управления.
Чтобы отобразить пользовательский значок в строке заголовка диалогового окна, обработчик WM _ инитдиалог может отправить сообщение WM _ сетикон в диалоговое окно.
Если приложение создает диалоговое окно с помощью одной из функций диалогбокспарам, диалогбоксиндиректпарам, Креатедиалогпарамили креатедиалогиндиректпарам, параметр lParam для сообщения WM _ INITDIALOG содержит дополнительный параметр, передаваемый функции. Приложения обычно используют этот дополнительный параметр для передачи указателя на дополнительные сведения об инициализации в процедуру диалогового окна, но процедура диалогового окна должна определять значение параметра. Если приложение использует другую функцию для создания диалогового окна, система устанавливает для параметра lParam значение NULL.
_Командное сообщение WM
Элемент управления может отправить _ командное сообщение WM в процедуру диалогового окна, когда пользователь выполняет действие в элементе управления. Эти сообщения, называемые сообщениями уведомления, сообщают о процедуре ввода данных пользователем и позволяют им выполнять соответствующие ответы.
Все стандартные элементы управления, за исключением статических элементов управления, отправляют сообщения уведомлений для выбранных действий пользователя. Например, при нажатии кнопки с помощью кнопки отправки отправляется млрд долл уведомление о _ нажатии на кнопку. Во всех случаях в слове с низким приоритетом параметра wParam содержится идентификатор элемента управления, а в верхнем порядке слово wParam — код уведомления, а параметр lParam содержит управляющий маркер окна.
Процедура диалогового окна должна отслеживать и обрабатывать сообщения уведомления. В частности, процедура должна обрабатывать сообщения с идентификаторами ИДОК или ИДКАНЦЕЛ; Эти сообщения представляют запрос пользователем, который закрывает диалоговое окно. Процедура должна закрыть диалоговое окно с помощью функции EndDialog для модальных диалоговых окон и функции дестройвиндов для немодальных диалоговых окон.
_Сообщение ПАРЕНТНОТИФИ WM
Элемент управления отправляет сообщение WM _ парентнотифи всякий раз, когда пользователь нажимает кнопку мыши и указывает на элемент управления. Некоторые приложения преобразуют это сообщение как сигнал для выполнения действия, связанного с элементом управления, например для отображения строки текста, описывающей назначение элемента управления.
Система также отправляет сообщения WM _ парентнотифи при создании и уничтожении окна, но не для элементов управления, созданных из шаблона диалогового окна. Система предотвращает эти сообщения, указывая стиль WS _ ex _ нопарентнотифи при создании элементов управления. Приложение не может переопределить это поведение по умолчанию, если оно не создает собственные элементы управления для диалогового окна.
Сообщения Control-Color
Элемент управления отправляет сообщение с цветом элемента управления в процедуру диалогового окна непосредственно перед тем, как оно рисует собственный фон. Сообщение позволяет процедуре указать, какую кисть использовать, а также задать цвета фона и переднего плана. Процедура задает кисть, возвращая маркер кисти. Чтобы задать цвета фона и переднего плана, процедура использует функции сетбкколор и сеттекстколор с контекстом устройства просмотра элемента управления. Сообщение Control-Color передает маркер контексту дисплея устройства в процедуру в параметре wParam сообщения.
Диалоговое окно обработки сообщений по умолчанию
Процедура окна для предопределенного класса диалогового окна выполняет обработку по умолчанию для всех сообщений, которые не обрабатывает процедура диалогового окна. Когда процедура диалогового окна возвращает false для любого сообщения, предопределенная процедура окна проверяет сообщения и выполняет следующие действия по умолчанию:
Предопределенная процедура окна передает все остальные сообщения в дефвиндовпрок для обработки по умолчанию.
Интерфейс клавиатуры диалогового окна
Система предоставляет специальный интерфейс клавиатуры для диалоговых окон, который выполняет специальную обработку нескольких ключей. Интерфейс создает сообщения, соответствующие определенным кнопкам в диалоговом окне, или изменяет фокус ввода с одного элемента управления на другой. Ниже приведены ключи, используемые в этом интерфейсе, и соответствующие им действия.
Стиль WS _ TABSTOP
Стиль WS _ TABSTOP определяет элементы управления, в которые пользователь может перемещаться с помощью клавиши TAB или клавиш SHIFT + TAB.
_Стиль группы WS
По умолчанию система перемещает фокус ввода к следующему или предыдущему элементу управления каждый раз, когда пользователь нажимает клавишу направления. Пока текущий элемент управления с фокусом ввода не обрабатывает эти ключи, а следующий или предыдущий элемент управления не является статическим, система по-прежнему перемещает фокус ввода с помощью всех элементов управления в диалоговом окне, так как пользователь по-прежнему нажимает клавиши направления.
Назначенные клавиши
Назначенная клавиша — это выбранная буква или цифра в метке кнопки или в тексте статического элемента управления. Система перемещает фокус ввода на элемент управления, связанный с назначенным символом, каждый раз, когда пользователь либо нажимает клавишу, соответствующую назначенной клавише, либо нажимает этот ключ и сочетание клавиш ALT. Назначенные клавиши дают возможность быстро перейти к указанному элементу управления с помощью клавиатуры.
Параметры диалоговое окно
Параметры диалогового окна — это текущие настройки и значения для элементов управления в диалоговом окне. Процедура диалогового окна отвечает за инициализацию элементов управления этими параметрами при создании диалогового окна. Он также отвечает за извлечение текущих параметров из элементов управления перед уничтожением диалогового окна. Методы, используемые для инициализации и получения параметров, зависят от типа элемента управления.
Дополнительные сведения см. в следующих разделах:
Переключатели и флажки
В диалоговых окнах используются переключатели и флажки, позволяющие пользователю выбирать из списка параметров. Переключатели позволяют пользователю выбирать взаимоисключающие параметры. флажки позволяют пользователю выбрать сочетание параметров.
Диалоговое окно «изменить элементы управления»
Списки, поля со списком и списки каталогов
Диалоговое окно также может использовать поле со списком для вывода списка имен файлов. Функция длгдирлисткомбобокс автоматически заполняет список в поле со списком именами файлов в текущем каталоге. Функция длгдирселекткомбобоксекс извлекает выбранное имя файла из списка.
Сообщения управления диалогового окна
Многие элементы управления распознают стандартные сообщения, которые при получении элементами управления приводят к тому, что они выполняют некоторые действия. Например, сообщение BM _ сетчекк устанавливает флажок в окошке, а сообщение EM _ жетсел извлекает часть текста элемента управления, которая в данный момент выбрана. Управляющие сообщения предоставляют процедуре диалогового окна больший и гибкий доступ к элементам управления, чем стандартные функции, поэтому они часто используются, когда диалоговое окно требует сложных взаимодействий с пользователем.
дополнительные сведения об управляющих сообщениях см. в разделе элементы управления Windows.
Пользовательские диалоговые окна
Приложение может создавать пользовательские диалоговые окна с помощью определяемого приложением класса окна для диалоговых окон вместо использования стандартного класса диалогового окна. Приложения обычно используют этот метод, когда диалоговое окно является основным окном, но оно также полезно для создания модальных и немодальных диалоговых окон для приложений, имеющих стандартные перекрывающиеся окна.
Определяемый приложением класс позволяет приложению определить процедуру окна для диалогового окна и обработать сообщения перед их отправкой в процедуру диалогового окна. Он также позволяет приложению определить значок класса, кисть фона класса и меню класса для этого диалогового окна. Приложение должно зарегистрировать класс окна перед попыткой создания диалогового окна и предоставить шаблон диалогового окна с помощью значения Atom или имени класса окна.
Процедура окна для пользовательского диалогового окна имеет те же параметры и требования, что и любая другая процедура окна. В отличие от других оконных процедур, процедура окна для этого диалогового окна должна вызывать функцию дефдлгпрок вместо функции дефвиндовпрок для любых сообщений, которые она не обрабатывает. Дефдлгпрок выполняет ту же обработку сообщений по умолчанию, что и процедура окна для предопределенного диалогового окна, в том числе вызов процедуры диалогового окна.
Приложения, которые создают настраиваемые диалоговые окна, иногда предоставляют альтернативный интерфейс клавиатуры для диалоговых окон. Для немодальных диалоговых окон это может означать, что приложение не вызывает функцию исдиалогмессаже и обрабатывает все вводы с клавиатуры в пользовательской процедуре окна. В таких случаях приложение может использовать сообщение WM _ некстдлгктл для сворачивания кода, необходимого для перемещения фокуса ввода с одного элемента управления на другой. Это сообщение, передаваемое в дефдлгпрок, перемещает фокус ввода на указанный элемент управления и обновляет внешний вид элементов управления, таких как перемещение границы кнопки по умолчанию или установка автоматических переключателей.
Использование общих диалоговых окон
В этом разделе рассматриваются задачи, вызывающие общие диалоговые окна:
Выбор цвета
В этом примере используется структура чусеколор для инициализации диалогового окна следующим образом:
Выбор шрифта
Открытие файла
начиная с Windows Vista, общее диалоговое окно файла заменено диалоговым окном общих элементов при использовании для открытия файла. Вместо общепринятого API-интерфейса диалогового окна рекомендуется использовать интерфейс API общего элемента. Дополнительные сведения см. в разделе диалоговое окно общих элементов.
В этом примере элемент лпстрфилтер является указателем на буфер, указывающий два фильтра имен файлов, которые пользователь может выбрать для ограничения отображаемых имен файлов. Буфер содержит массив строк, заканчивающийся двойным нулем, в котором каждая пара строк задает фильтр. Элемент нфилтериндекс указывает, что первый шаблон используется при создании диалогового окна.
В языке программирования C строка, заключенная в кавычки, завершается нулем.
Отображение диалогового окна «Печать»
Использование страницы свойств печати
После завершения операции печати пример кода освобождает буферы DEVMODE, DEVNAMESи принтпажеранже и вызывает функцию делетедк для удаления контекста устройства.
Настройка печатной страницы
В следующем примере также активируется процедура-обработчик пажепаинсук для настройки рисования содержимого образца страницы.
Поиск текста
В этом разделе описывается пример кода, который отображает диалоговое окно поиска и управляет им, чтобы пользователь мог указать параметры операции поиска. Диалоговое окно отправляет сообщения в процедуру окна, чтобы можно было выполнить операцию поиска.
Тест по теме «Текстовый редактор Word», 7 класс
Тест по теме: Текстовый редактор Word.
Ответьте на вопрос, выбрав вариант ответа.
графический редактор;
текстовый редактор;
программа для создания моделей;
база данных.
Ответьте на вопрос, выбрав вариант ответа.
Что такое текстовый редактор?
программа для работы с изображениями в процессе создания игровых программ;
программа управления ресурсами ПК при создании документов;
программа для создания, редактирования, форматирования текстовой информации;
программа автоматического перевода с символических языков в машинные коды.
Ответьте на вопрос, выбрав вариант ответа.
расстояние между буквами текста;
расстояние между строками текста;
расстояние между абзацами текста.
Ответьте на вопрос, выбрав вариант ответа.
В каком из перечисленных ниже предложений правильно расставлены пробелы между словами и знаками препинания?
Пора, что железо: куй, поколе кипит!
Пора, что железо:куй, поколе кипит!
Ответьте на вопрос, выбрав вариант ответа.
Игорь набирал текст на компьютере. Вдруг все буквы у него стали вводиться прописными. Что произошло?
произошел сбой в текстовом редакторе
случайно была нажата клавиша NumLock
случайно была нажата клавиша CapsLock
Ответьте на вопрос, выбрав вариант ответа.
Положение курсора в слове с ошибкой отмечено черточкой: ИСС|СКУСТВО
Чтобы исправить ошибку, следует нажать на клавишу:
Delete или Backspace
7. Соотнесите номер кнопки с ее названием:
1)
2)
3)
4)
г) цвет выделения текста
5)
6)
7)
8. Ответьте на вопрос.
На какой вкладке и в какой группе находятся кнопки из задания 7.
9. Ответьте на вопрос.
Какую операцию можно выполнить с помощью данного диалогового окна
Поиск и замену в тексте
Изменить размеры полей страницы
Изменить абзацные отступы и размеры красной строки
Изменить шрифт текста
10. Ответьте на вопрос, выбрав вариант ответа.
Какой ориентации листа нет?
по выполнению дидактического теста для проведения контрольного опроса школьников по теме: « Текстовый редактор Word »
Вашему вниманию предлагается дидактический тест для проведения контрольного опроса по теме: « Текстовый редактор Word »
Вы должны выполнить предложенные вам тестовые задания за 25 минут и внести ответы в бланк ответа.
При внесении в бланк ответов на тестовые задания Вы должны соблюдать правила заполнения бланка ответов в зависимости от вида тестовых заданий.
При выполнении заданий с формулировкой «Выберите правильный вариант ответа» Вы должны выбрать один правильный ответ из предложенных и проставить его номер в соответствующую позицию в бланке ответа.
При выполнении заданий с формулировкой «Установите соответствие» Вы должны найти такие однозначные связи между позициями первого и второго столбиков, чтобы одной позиции первого столбика соответствовала только одна позиция второго, а повтор используемых позиций категорически запрещен. Установленное соответствие внести в бланк ответа.
ФИО ученика __________________________________________________
20 команд диалогового окна «Выполнить», которые должен знать каждый
Панель управления Windows имеет огромный спектр инструментов, с помощью которых можно выполнить практически любые настройки операционной системы. Но есть и альтернативный способ доступа к этим инструментам – это диалоговое окно «Выполнить». Фактически, если Вы знаете команду на запуск той или иной утилиты или задачи, то Вы получите быстрый доступ к ней. Несмотря на то, что в современных ОС (Windows Vista, 7, 8) это диалоговое окно спрятали в строку поиска меню «Пуск», его всё ещё можно вызвать нажатием сочетания клавиш “Win+R”. Представляем вам 20 полезных команд, которые вам пригодятся. 
Список команд диалогового окна «Выполнить»
1. “\” – Это одна из наименее известных команд. Ввод обратной косой черты откроет диск “C”.
2. “.” – Это ещё одна из малоизвестных команд диалогового окна «Выполнить». Ввод точки в диалоговое окно откроет папку текущего пользователя, в которой содержатся такие папки, как: «Видео», «Загрузки», «Изображения», «Музыка», «Рабочий стол» и другие.
3. “..” – При вводе двух точек открывается папка “Users”, которая расположена на диске ”C” (если Windows установлен именно в этот диск).
4. calc – Если вы хотите быстро запустить Калькулятор, который идёт в поставке вместе с Windows, просто введите эту команду в диалоговое окно «Выполнить». 
5. cmd – Даже в Windows приходится иметь дело с командной строкой. С этой командой Вы быстро откроете «Командную строку» без привилегий администратора.
6. powershell – Если Вы считаете, что «Командная строка» – это старомодно, то просто введите эту команду в диалоговое окно «Выполнить» и у Вас запустится PowerShell без привилегий администратора.
7. netplwiz – Настройка учётных записей доступна из «Панели управления», но если Вам нужны более продвинутые возможности управления пользователями, то откройте окно «Учетные записи пользователей» этой командой.
8. gpedit.msc – «Редактор локальной групповой политики» позволяет редактировать поведение Windows на локальном и удалённом компьютере. «Редактор локальной групповой политики» — это мощный инструмент, но он закопан глубоко внутри Windows, а эта команда позволяет быстро до него добраться. 
9. lusrmgr.msc – используя эту команду диалогового окна «Выполнить», Вы можете открыть утилиту «Локальные пользователи и группы», где есть возможность редактировать некоторые свойства пользователей и групп.
10. mrt – Каждый месяц Microsoft выпускает «Средство удаления вредоносных программ Microsoft Windows» через «Центр обновления Windows». Эта бесплатная утилита поможет вам вычистить некоторые популярные вирусы с вашего компьютера. Она работает в фоновом режиме, но с помощью этой команды Вы можете запустить её вручную. 
11. ncpa.cpl – Будучи интернет пользователем, Вы можете столкнутся с различными сетевыми неполадками, и один из способов устранения неполадок является доступ к «Сетевым подключениям». Для доступа к сетевым адаптерам Вы можете ввести эту команду в диалоговое окно «Выполнить».
12. perfmon.msc – Если Вы хотите контролировать производительность вашего компьютера и эффективность запущенных программ, то запустите «Системный монитор» с помощью этой команды. 
13. powercfg.cpl – Windows представляет широкие настройки правил электропитания, и Вы можете получить к ним доступ используя эту команду.
14. appwiz.cpl – Доступ к панели «Программы и компоненты» можно получить с помощю данной команды.
15. devmgmt.msc – «Диспетчер устройств» Windows позволяет Вам управлять аппаратными устройствами Вашего ПК, и Вы можете быстро получить к ним доступ с использование команды диалогового окна «Выполнить». Также Вы можете использовать и другую команду: “hdwwiz.cpl”. 
16. regedit – Данная команда запустит «Редактор реестра», который представляет доступ к иерархической базе данных всех конфигураций и настроек операционной системы и установленных программ.
17. msconfig – «Конфигурация системы» Windows позволяет редактировать различные параметры, такие как: вариант запуска ОС, параметры её запуска, запуск служб, автозагрузку и т.д. 
18. sysdm.cpl – С помощью данной команды Вы откроете окно «Свойство системы». 
19. firewall.cpl – Для настройки брандмауэра Windows используйте эту команду диалогового окна «Выполнить».
20. wuapp – И наконец последняя по списку, но не по значению, команда, позволяющая управлять настройками обновления Windows.
Как Вы видите, диалоговое окно «Выполнить» является одной из лучших утилит в составе ОС Windows. В статье представлен лишь малый список команд для доступа к разным местам Windows, но, если Вы знаете какие-либо интересные команды, поделитесь ими в комментариях.
Использование диалоговых окон
Используйте диалоговые окна для вывода сведений и запроса ввода от пользователя. Приложение загружает и Инициализирует диалоговое окно, обрабатывает входные данные пользователя и уничтожает диалоговое окно, когда пользователь завершает задачу. Процесс обработки диалоговых окон зависит от того, является ли диалоговое окно модальным или немодальным. Модальное диалоговое окно требует, чтобы пользователь закрыл диалоговое окно перед активацией другого окна в приложении. Однако пользователь может активировать Windows в разных приложениях. Немодальное диалоговое окно не требует немедленного ответа от пользователя. Он аналогичен главному окну, содержащему элементы управления.
В следующих разделах описывается использование обоих типов диалоговых окон.
Отображение окна сообщения
В следующем примере приложение отображает окно сообщения, предлагающее пользователю ввести действие после возникновения ошибки. В окне сообщения отобразится сообщение с описанием условия ошибки и способами ее устранения. _ Данет в стиле «МБ» направляет MessageBox для предоставления двух кнопок, с помощью которых пользователь может выбрать способ продолжения:
На следующем рисунке показаны выходные данные предыдущего примера кода:
Создание модального диалогового окна
Следующие инструкции создают модальное диалоговое окно. Шаблон диалогового окна — это ресурс в исполняемом файле приложения с идентификатором ресурса DLG _ DELETEITEM.
Создание немодального диалогового окна
В приведенных выше инструкциях креатедиалог вызывается, только если не hwndGoto содержит допустимый обработчик окна. Это гарантирует, что приложение не будет одновременно отображать два диалоговых окна. Для поддержки этого метода процедура диалогового окна должна иметь значение null при уничтожении диалогового окна.
Цикл обработки сообщений для приложения состоит из следующих инструкций.
В следующих инструкциях определяется процедура диалогового окна.
Инициализация диалогового окна
В приведенных выше инструкциях процедура использует функцию getHandler для получения маркера окна-владельца для диалогового окна. Функция возвращает обработчик окна владельца в диалоговые окна, а родительский окно — в дочерние окна. Поскольку приложение может создать диалоговое окно, не имеющее владельца, процедура проверяет возвращенный обработчик и использует функцию жетдесктопвиндов для получения маркера окна рабочего стола при необходимости. После вычисления новой должности процедура использует функцию SetWindowPos для перемещения диалогового окна, указывая _ верхнее значение HWND, чтобы убедиться, что диалоговое окно остается в верхней части окна владельца.
Создание шаблона в памяти
Приложения иногда адаптируют или изменяют содержимое диалоговых окон в зависимости от текущего состояния обрабатываемых данных. В таких случаях нецелесообразно предоставлять все возможные шаблоны диалоговых окон в качестве ресурсов исполняемого файла приложения. Но создание шаблонов в памяти обеспечивает большую гибкость при адаптации к любым обстоятельствам.
В следующем примере приложение создает шаблон в памяти для модального диалогового окна, содержащего сообщение и кнопки « ОК » и « Справка ».
В шаблоне диалогового окна все символьные строки, например диалоговые окна и заголовки кнопок, должны быть строками в Юникоде. В этом примере используется функция MultiByteToWideChar для создания этих строк Юникода.












