Win32 API. Справочник по стандартному диалоговому окну
Страница 26. Структура PAGESETUPDLG


Структура PAGESETUPDLG

Структура PAGESETUPDLG содержит информацию для функции PageSetupDlg, которая используется, чтобы инициализировать стандартное диалоговое окно Параметры страницы (Page Setup). После того, как пользователь закрывает блок диалога, система возвращает в эту структуру информацию об определяемых пользователем параметрах страницы.

Синтаксис

typedef struct tagPSD 
{
DWORD lStructSize;
HWND hwndOwner;
HGLOBAL hDevMode;
HGLOBAL hDevNames;
DWORD Flags;
POINT ptPaperSize;
RECT rtMinMargin;
RECT rtMargin;
HINSTANCE hInstance;
LPARAM lCustData;
LPPAGESETUPHOOK lpfnPageSetupHook;
LPPAGEPAINTHOOK lpfnPagePaintHook;
LPCTSTR lpPageSetupTemplateName;
HGLOBAL hPageSetupTemplate;
} PAGESETUPDLG, * LPPAGESETUPDLG;

Элементы
lStructSize
Определяет размер этой структуры, в байтах.
hwndOwner
Идентифицирует окно, которое владеет блоком диалога. Этот элемент может быть любым допустимым дескриптором окна, или он может иметь значение ПУСТО (NULL), если у диалогового окна нет владельца.
hDevMode
Дескриптор объекта глобальной памяти, который содержит структуру DEVMODE. При вводе данных, если дескриптор дан, чтобы инициализировать элементы управления в диалоговом окне используются значения в соответствующей структуре DEVMODE. При выводе данных, блок диалога устанавливает в hDevMode глобальный дескриптор памяти для структуры DEVMODE, которая содержит значения, определяющие выбор пользователя. Если выбор пользователя не доступен, диалоговое окно устанавливает hDevMode в значение ПУСТО (NULL).
hDevNames
Дескриптор объекта глобальной памяти, который содержит структуру DEVNAMES. Эта структура содержит три строки, которые определяют имя драйвера, название принтера и название порта вывода данных. При вводе данных, если дескриптор дан, строки в соответствующей структуре DEVNAMES используются, чтобы инициализировать элементы управления в диалоговом окне. При выводе данных, блок диалога устанавливает в hDevNames глобальный дескриптор памяти для структуры DEVNAMES, которая содержит строки, определяющие выбор пользователя. Если выбор пользователя не доступен, диалоговое окно устанавливает hDevNames в значение ПУСТО (NULL).
Flags
Набор битовых флажков, который вы можете использовать, чтобы инициализировать стандартное диалоговое окно Параметры страницы (Page Setup). Когда блок диалога возвращает значение, он устанавливает эти флажки, чтобы обозначить ввод данных пользователем. Этот элемент может быть комбинацией следующих флажков:

  • PSD_DEFAULTMINMARGINS - Устанавливаются минимальные значения, которые пользователь может определять для полей страницы, чтобы они были минимальными полями страницы, допустимыми для принтера. Эти значения определяются по умолчанию. Этот флажок игноририруется, если определены также флажки PSD_MARGINS и PSD_MINMARGINS.
  • PSD_DISABLEMARGINS - Отключает элементы управления полями страницы, не допуская пользователя к настройкам полей страницы.
  • PSD_DISABLEORIENTATION - Отключает элементы управления ориентации, не допуская пользователя к настройкам ориентации страницы.
  • PSD_DISABLEPAGEPAINTING - Не допускает диалоговое окно к рисованию содержания макета страницы. Если вы включаете фильтр (hook) - процедуру PagePaintHook, то все еще можете рисовать содержание макета страницы.
  • PSD_DISABLEPAPER - Отключает элементы управления бумагой, не допуская пользователя к настройкам параметров страницы таких как размер бумаги и её источник.
  • PSD_DISABLEPRINTER - Отключает кнопку Печать (Printer), не допуская пользователя к вызову диалогового окна, которое содержит дополнительную информацию о настройках принтера.
  • PSD_ENABLEPAGEPAINTHOOK - Включает фильтр (hook) - процедуру, определяемую в элементе lpfnPagePaintHook.
  • PSD_ENABLEPAGESETUPHOOK - Включает фильтр (hook) - процедуру, определяемую в элементе lpfnPageSetupHook.
  • PSD_ENABLEPAGESETUPTEMPLATE - Указывает, что элементы hInstance и lpPageSetupTemplateName определяют шаблон диалогового окна, который используетсяся вместо шаблона заданного по умолчанию.
  • PSD_ENABLEPAGESETUPTEMPLATEHANDLE - Указывает, что элемент hPageSetupTemplate идентифицирует блок данных, который содержит предварительно загруженный шаблон диалогового окна. Система игнорирует элемент lpPageSetupTemplateName, если этот флажок установлен.
  • PSD_INHUNDREDTHSOFMILLIMETERS - Указывает, что 1/100 миллиметра является единицей измерения для полей страницы и размера бумаги. Значения в элементах rtMargin, rtMinMargin и ptPaperSize находятся в сотых долях миллиметра. Вы можете установить этот флажок при вводе данных, чтобы заменить заданную по умолчанию единицу измерения для региона пользователя. Когда функция возвращает значение, диалоговое окно устанавливает этот флажок, чтобы указать используемые единицы измерения.
  • PSD_INTHOUSANDTHSOFINCHES - Указывает, что тысячные части дюймов - единица измерения для полей страницы и размера бумаги. Значения в элементах rtMargin, rtMinMargin и ptPaperSize находятся в тысячных долях дюйма. Вы можете установить этот флажок при вводе данных, чтобы заменить заданную по умолчанию единицу измерения для региона пользователя. Когда функция возвращает значение, диалоговое окно устанавливает этот флажок, чтобы указать используемые единицы измерения.
  • PSD_INWININIINTLMEASURE - Не выполняется.
  • PSD_MARGINS - Заставляет систему использовать значения, определяемые в элементе rtMargin как начальные размеры для левого, верхнего, правого и нижнего поля страницы. Если флажок PSD_MARGINS не установлен, система устанавливает начальные размеры в один дюйм для всех полей страницы.
  • PSD_MINMARGINS - Вынуждает систему использовать значения, определяемые в элементе rtMinMargin как минимально допустимые размеры для левого, верхнего, правого, и нижнего поля страницы. Система не разрешает пользователю ввод ширины, которая является меньше чем определяемый минимум. Если флажок PSD_MINMARGINS не установлен, система устанавливает минимальные допустимые размеры в которые разрешены для принтера.
  • PSD_NOWARNING - Не разрешает системе отображать на экране предупреждающее сообщение, когда нет никакого заданного по умолчанию принтера.
  • PSD_RETURNDEFAULT - Функция PageSetupDlg не показывает на экране диалоговое окно. Вместо этого, она устанавливает в элементах hDevNames и hDevMode дескрипторы структур DEVMODE и DEVNAMES, которые инициализированы системой как принтер по умолчанию. PageSetupDlg возвращает значение ошибки, если, или hDevNames, или hDevMode не имеют значение ПУСТО (NULL).
  • PSD_SHOWHELP - Заставляет диалоговое окно показать на экране кнопку Справка (Help). Элемент hwndOwner должен определить окно, принимающее зарегистрированные сообщения HELPMSGSTRING , которые блок диалога передает, когда пользователь щелкает мышью по кнопке Справка (Help).

ptPaperSize
Определяет размеры бумаги, выбранные пользователем. Флажок PSD_INTHOUSANDTHSOFINCHES или PSD_INHUNDREDTHSOFMILLIMETERS обозначает единицы измерения.
rtMinMargin
Определяет минимально допустимые размеры для левого, верхнего, правого и нижнего поля страницы. Система игнорирует этот элемент, если флажок PSD_MINMARGINS не установлен. Эти значения должны быть меньше или равны значениям, определяемым в элементе rtMargin. Флажок PSD_INTHOUSANDTHSOFINCHES или PSD_INHUNDREDTHSOFMILLIMETERS обозначает единицы измерения.
rtMargin
Определяет размеры левого, верхнего, правого, и нижнего поля страницы. Если вы устанавливаете флажок PSD_MARGINS, rtMargin определяет начальные значения полей страницы. Когда PageSetupDlg возвращает значение, rtMargin содержит размеры полей страницы, выбранные пользователем. Флажок PSD_INHUNDREDTHSOFMILLIMETERS или PSD_INTHOUSANDTHSOFINCHES обозначает единицы измерения.
hInstance
Если в элементе Flags установлен флажок PSD_ENABLEPAGESETUPTEMPLATE, hInstance - дескриптор прикладной программы или экземпляра модуля, который содержит шаблон диалогового окна, именованный элементом lpPageSetupTemplateName.
lCustData
Устанавливает определяемые программой данные о том, что система передает фильтр (hook) - процедуру, идентифицированную lpfnPageSetupHook элементом. Когда система передает сообщение WM_INITDIALOG фильтр (hook) - процедуре, параметр сообщения lParam - указатель на структуру PAGESETUPDLG, которая была определена, когда диалоговое окно было создано. Фильтр (hook) - процедура может использовать этот указатель, чтобы получить значение элемента lCustData.
lpfnPageSetupHook
Указатель на фильтр (hook) - процедуру PageSetupHook, которая может обрабатывать сообщения, предназначенные для диалогового окна. Если в элементе Flags, флажок PSD_ENABLEPAGESETUPHOOK не установлен, этот элемент игнорируется.
lpfnPagePaintHook
Указатель на фильтр (hook) - процедуру PagePaintHook, которая принимает сообщения WM_PSD_* от диалогового окна всякий раз, когда перерисовывается макет страницы. Обрабатывая сообщения, фильтр (hook) - процедура может настраивать внешний вид макета страницы. Этот элемент игнорируется, если в элементе Flags флажок PSD_ENABLEPAGEPAINTHOOK не установлен.
lpPageSetupTemplateName
Указатель на строку с символом нуля в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном элементом hInstance. Этот шаблон замещает стандартный шаблон блока диалога. Для пронумерованных ресурсов диалогового окна, lpPageSetupTemplateName может быть значением, возвращенным макрокомандой MAKEINTRESOURCE. Этот элемент игнорируется, если в элементе Flags флажок PSD_ENABLEPAGESETUPTEMPLATE не установлен.
hPageSetupTemplate
Если флажок PSD_ENABLEPAGESETUPTEMPLATEHANDLE установлен в элементе Flags, hPageSetupTemplate - дескриптор объекта памяти, содержащего шаблон диалогового окна.

Замечания
Если флажки PSD_INHUNDREDTHSOFMILLIMETERS и PSD_INTHOUSANDTHSOFINCHES не установлены, система делает запрос со значением LOCALE_IMEASURE региона гипотетического пользователя, чтобы обусловить единицу измерения (или одна сотая миллиметра или тысячные доли дюймов) для размеров полей страницы и размера бумаги.
Если и hDevNames и hDevMode имеют правильные дескрипторы, а название принтера, в элементе wDeviceOffset структуры DEVNAMES указано не такое, какое имя указано в элементе dmDeviceName структуры DEVMODE, система по умолчанию использует название указанное в элементе wDeviceOffset.>br>

Смотри также
DEVMODE, DEVNAMES, MAKEINTRESOURCE, PagePaintHook, PageSetupDlg, PageSetupHook, WM_INITDIALOG

Размещение и совместимость PAGESETUPDLG

Windows NTДа 
Win95Да
Win32sДа
Импортируемая библиотека-
Заголовочный файлcommdlg.h
UnicodeWinNT
Замечания по платформеНе имеется

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