Исследователь стиль пользовательские шаблоны

Чтобы определить дополнительные элементы управления для диалогового окна метода стиле проводника Открыть или Сохранить как , используйте структуру OPENFILENAME чтобы задать шаблон для детей диалогового окна, содержащий дополнительные элементы управления. Если ваш ребенок диалоговое окно шаблон является ресурсом в приложения или библиотеки динамической компоновки, установите флаг OFN_ENABLETEMPLATE в странах-членах флаги и используйте hInstance и lpTemplateName члены структуры для идентификации имя модуля и ресурсов. Если этот шаблон уже находится в памяти, установите флаг OFN_ENABLETEMPLATEHANDLE и используйте hInstance члена для идентификации объекта памяти, содержащий шаблон. При оказании ребенок диалоговое окно шаблон для диалогового окна проводника стиль, необходимо также установить флаг OFN_EXPLORER; в противном случае система предполагает, что предоставляют шаблон замены для диалогового окна старого стиля. Как правило если вы предоставляете дополнительные элементы управления, необходимо также предоставить стиле проводника крючком процедуры для обработки сообщений для новых элементов управления.

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

Чтобы освободить место для новых элементов управления, система расширяет диалоговое окно по умолчанию, ширина и высота пользовательского диалогового окна. По умолчанию все элементы управления из пользовательского диалогового окна, расположенных ниже все элементы управления в диалоговом окне по умолчанию. Однако можно переопределить это значение по умолчанию, позиционирование, включив элемент управления статическим текстом в поле Шаблон настраиваемого диалогового окна и присваивая ей значение идентификатора элемента управления stc32. (Это значение определяется в DLG.H заголовочный файл.) В этом случае система использует элемент управления в качестве точки отсчета для определения где новые элементы управления. Все новые элементы управления сверху и слева от элемента управления stc32 расположены ту же сумму выше и левее всех элементов управления в диалоговом окне по умолчанию. Новые элементы управления ниже и правее stc32 управления расположены ниже и правее элементов управления по умолчанию. В общем каждый новый элемент управления располагается таким образом, чтобы он имеет ту же позицию относительно элементов управления по умолчанию, как это было в элемент управления stc32. Чтобы освободить место для этих новых элементов управления, система добавляет пространство слева, права, нижней и верхней части диалогового окна по умолчанию при необходимости.

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

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

Index