Пользовательские шаблоны
Стандартные диалоговые окна имеют заданные по умолчанию шаблоны, которые определяют число, тип и позицию стандартных органов управления в диалоговом окне. Вы можете определить пользовательский шаблон, чтобы дать пользователям доступ к дополнительным элементам управления, которые явятся уникальными для вашей прикладной программы.
Для всех стандартных диалоговых окон за исключением диалоговых окон в стиле Проводника (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 соответствующей структуры для диалогового окна. Если шаблон - это ресурс в прикладной программе или в динамически подключаемой библиотеке (DLL), в члене Flags устанавливается флажок ENABLETEMPLATE, а члены структуры hInstance и lpTemplateName используются, чтобы идентифицировать имя модуля и ресурса. Если шаблон уже в памяти, в члене Flags устанавливается флажок ENABLETEMPLATEHANDLE, а член hInstance используется, чтобы идентифицировать объект памяти, который содержит шаблон.
В большинстве случаев, вы должны также разрешить и работу фильтр (hook) - процедуры событий для диалогового окна, чтобы поддерживать и обрабатывать вводимую информацию для дополнительных органов управления в вашем пользовательском шаблоне.
Для диалоговых окон в стиле Проводника Открыть (Open) и Сохранить как (Save As), заданные по умолчанию шаблоны не доступны для модификации. Вместо этого, ваш пользовательский шаблон определяет дочернее диалоговое окно, которое включает только те элементы, которые будут добавлены к стандартному диалоговому окну. Пользовательский шаблон может определять и статический орган управления, который устанавливает расположение группы стандартных элементов управления в дочернем диалоговом окне. Для получения дополнительной информации, см. Пользовательские шаблоны для стиля проводника.