Win32 API. Библиотека стандартных диалоговых окон
Страница 20. Инициализация диалогового окна Параметры страницы (Page Setup)


Инициализация диалогового окна Параметры страницы (Page Setup)

По умолчанию, диалоговое окно Параметры страницы (Page Setup) показывает информацию о текущем заданном по умолчанию принтере. Чтобы предписать диалоговому окну показать информацию об особенностях принтера, установите элементы структуры DEVMODE или DEVNAMES и присвойте глобальные дескрипторы памяти этих структур соответствующим элементам в PAGESETUPDLG. Если Вы определяете имя принтера, который в настоящее время не установлен, диалоговое окно показывает сообщение об ошибке. Чтобы запретить диалоговому окну отображать сообщения об ошибках, используйте значение PSD_NOWARNING. Чтобы извлечь информацию о заданном по умолчанию принтере без показа её в Диалоговом окне Параметры страницы (Page Setup), используйте значение PSD_RETURNDEFAULT.

Если заданная по умолчанию система мер - дюймы, диалоговое окно использует тысячные части дюймов как заданную по умолчанию единицу измерения. Если заданная по умолчанию система мер метрическая, диалоговое окно использует сотые миллиметра как заданные по умолчанию единицы измерения. Чтобы отменить заданную по умолчанию единицу измерения, установите флажок PSD_INHUNDREDTHSOFMILLIMETERS или PSD_INTHOUSANDTHSOFINCHES в элементе Flags структуры PAGESETUPDLG.

Начальные значения для полей, по умолчанию, один дюйм,. Если Вы устанавливаете флажок PSD_MARGINS, диалоговое окно показывает первоначальное значение поля страницы, определенное в элементе rtMargin. По умолчанию минимальное значение для полей, которое пользователь может установить - минимальные поля, допускаемые принтером. Если Вы устанавливаете флажок PSD_MINMARGINS, диалоговое окно обеспечивает минимальные поля, определенные в элементе rtMinMargin.

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

  • PSD_DISABLEMARGINS - Отключает редактируемые поля, в которые пользователь вводит с клавиатуры величину поля
  • PSD_DISABLEORIENTATION - Отключает радио-кнопки Книжная (Portrait) и Альбомная (Landscape) ориентация
  • PSD_DISABLEPAPER - Отключает элементы управления для выбора размера и источника бумаги
  • PSD_DISABLEPRINTER - Отключает командную кнопку Принтер

Настройка диалогового окна Параметры страницы (Page Setup)

Вы можете предоставить пользовательский шаблон для диалогового окна Параметры страницы (Page Setup), например, если Вы желаете включать дополнительные элементы управления, которые являются уникальными в вашей прикладной программе. Функция PageSetupDlg использует ваш пользовательский шаблон вместо заданного по умолчанию шаблона.

Чтобы предоставить пользовательский шаблон для диалогового окна Параметры страницы (Page Setup).

1. Создайте пользовательский шаблон, изменяя заданный по умолчанию шаблон, определенный в файле PRNSETUP.DLG. Идентификаторы элемента управления, используемые по умолчанию в шаблоне блока диалога Параметры страницы (Page Setup) определены в файле DLGS.H.

2. Используйте структуру PAGESETUPDLG, чтобы разрешить шаблону как ниже указано:

Если ваш пользовательский шаблон - ресурс в прикладной программе или динамически компонуемой библиотеке, установите флажок PSD_ENABLEPAGESETUPTEMPLATE в элементе Flags. Используйте элементы hInstance и lpPageSetupTemplateName структуры, чтобы идентифицировать имя ресурса и модуль.

ИЛИ

Если ваш индивидуальный шаблон уже в памяти, установите флажок PSD_ENABLEPAGESETUPTEMPLATEHANDLE. Используйте элемент hPageSetupTemplate, чтобы идентифицировать объект памяти, который содержит шаблон.

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

Чтобы включить фильтр - процедуру PageSetupHook

1. Установите флажок PSD_ENABLEPAGESETUPHOOK в элементе Flags структуры PAGESETUPDLG.

2. Определите адрес фильтр - процедуры в элементе lpfnPageSetupHook.

После обработки своего сообщения WM_INITDIALOG процедура диалогового окна посылает сообщение WM_INITDIALOG фильтр - процедуре PageSetupHook. Параметр lParam этого сообщения - указатель на структуру PAGESETUPDLG, используемую, чтобы инициализировать диалоговое окно. 

 
« Предыдущая статья   Следующая статья »