Структура 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_NONETWORKBUTTON Скрывает и отключает кнопку Сеть (Network).
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

Если в элементе Flags установлен флажок PSD_ENABLEPAGESETUPTEMPLATEHANDLE, hPageSetupTemplate - дескриптор объекта памяти, содержащего шаблон диалогового окна.

Замечания

Если флажки PSD_INHUNDREDTHSOFMILLIMETERS и PSD_INTHOUSANDTHSOFINCHES не установлены, система делает запрос со значением LOCALE_IMEASURE региона гипотетического пользователя, чтобы обусловить единицу измерения (или одна сотая миллиметра или тысячные доли дюймов) для ширины полей страницы и размера бумаги.

Если и hDevNames и hDevMode имеют допустимые дескрипторы, а название принтера, в члене wDeviceOffset структуры DEVNAMES указано не такое, какое имя указано в члене dmDeviceName структуры DEVMODE, система по умолчанию использует название указанное в члене wDeviceOffset.

Смотри также

Обзор Библиотека стандартных диалоговых оконСтруктуры, используемые библиотекой стандартных диалоговых окон, DEVMODE, DEVNAMES, MAKEINTRESOURCE, PagePaintHook, PageSetupDlg, PageSetupHook, WM_INITDIALOG

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

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.51 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Заголовочный файл

 

- объявлено в

Commdlg.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz