Win32 API. Библиотека стандартных диалоговых окон - Настройки стандартного диалогового окна
ОГЛАВЛЕНИЕ
Настройки стандартного диалогового окна
Вы можете использовать общие диалоговые окна в их стандартной форме, или вы можете настраивать их. С точки зрения пользователя, основная польза стандартного диалогового окна - его общепризнанный установившийся внешний вид и функциональные одинаковые возможности от прикладной программы к прикладной программе. Следовательно, важно то, что вы настраиваете общее диалоговое окно только тогда, когда это абсолютно необходимо для прикладной программы. Иначе, установившийся внешний вид и простой интерфейс кодирования потеряются. Допустимые настройки оставляют неповрежденными столько из первоначальных элементов управления, сколько это возможно. Увеличение размеров диалогового окна или добавление новых элементов управления в свободное место, в уже доступном в диалоговом окне, являются допустимыми настройками. Сокрытие первоначальных элементов управления или, по-другому, изменение предопределенных функциональных возможностей первоначальных элементов управления - не допустимые настройки.
В этом разделе обсуждаются следующие методы настройки общего диалогового окна:
- Обеспечение настроек шаблона блока диалога, который определяет, дополнительные элементы управления или изменяет стандартные средства управления
- Создание фильтра (hook), чтобы контролировать и фильтровать сообщения, пересылаемые в процедуру диалогового окна
- Использование зарегистрированных сообщений, чтобы принимать или передавать информацию в диалоговое окно
- Обеспечение поддержки справки для стандартного диалогового окна
Настройка шаблонов
Стандартные диалоговые окна имеют заданные по умолчанию шаблоны, которые определяют число, тип и позицию стандартных элементов управления в диалоговом окне. Вы можете определять настраиваемый шаблон, чтобы дать пользователям доступ к дополнительным элементам управления, которые явятся уникальными для вашей прикладной программы.
Для всех общих диалоговых окон за исключением диалоговых окон в стиле Проводника (Explorer-style) Открыть (Open ) и Сохранить как (Save As), вы изменяете заданный по умолчанию шаблон, чтобы создать пользовательский шаблон, который заменит заданный по умолчанию. Пользовательский шаблон определяет тип и позицию стандартных элементов управления также как и любых дополнительных элементов управления.
Когда вы создаете пользовательский шаблон диалогового окна, путем изменения шаблона заданного по умолчанию, удостоверитесь, что идентификаторы для любых добавленных элементов управления уникальны и не находятся в противоречии с идентификаторами стандартных средств управления. Следующая таблица перечисляет имя заданного по умолчанию файла шаблона и файла для включения для каждого из стандартных типов диалогового окна.
Тип диалогового окна Файл шаблона Включаемый файл
Цвет (Color) COLOR.DLG COLORDLG.H
Найти (Find) FINDTEXT.DLG DLGS.H
Шрифт (Font) FONT.DLG DLGS.H
Открыть (Open) (многократный выбор) FILEOPEN.DLG DLGS.H
Открыть (Open) (однократный выбор) FILEOPEN.DLG DLGS.H
Параметры страницы (Page Setup) PRNSETUP.DLG DLGS.H
Печатать (Print) PRNSETUP.DLG DLGS.H
Параметры печати (Print Setup) (устаревший) PRNSETUP.DLG DLGS.H
Заменить (Replace) FINDTEXT.DLG DLGS.H
Чтобы включить пользовательский шаблон, вы должны установить флажок в элементе Flags соответствующей структуры для диалогового окна. Если шаблон - ресурс в прикладной программе или в динамически компонуемой библиотеке, установите флажок ENABLETEMPLATE в элементе Flags, а элементы структуры hInstance и lpTemplateName используйте, чтобы идентифицировать имя ресурса и модуль. Если шаблон уже в памяти, установите флажок ENABLETEMPLATEHANDLE в элементе Flags и используйте элемент hInstance, чтобы идентифицировать объект памяти, который содержит шаблон.
В большинстве случаев, вы должны также разрешить работу фильтра (hook) для диалогового окна, чтобы поддерживать и обрабатывать вводимую информацию для дополнительных элементов управления в вашем пользовательском шаблоне.
Для диалоговых окон Открыть и Сохранить в стиле Проводника, заданные по умолчанию шаблоны не доступны для модификации. Вместо этого, ваш пользовательский шаблон определяет дочернее диалоговое окно, которое включает только те элементы, которые будут добавлены к стандартному диалоговому окну. Пользовательский шаблон может также определять статический элемент управления, который устанавливает расположение группы стандартных элементов управления в дочернем диалоговом окне. Для получения дополнительной информации, см. Пользовательские шаблоны в Стиле проводника.