Структура PAGESETUPDLGA (commdlg.h)

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

Синтаксис

typedef struct tagPSDA {
  DWORD           lStructSize;
  HWND            hwndOwner;
  HGLOBAL         hDevMode;
  HGLOBAL         hDevNames;
  DWORD           Flags;
  POINT           ptPaperSize;
  RECT            rtMinMargin;
  RECT            rtMargin;
  HINSTANCE       hInstance;
  LPARAM          lCustData;
  LPPAGESETUPHOOK lpfnPageSetupHook;
  LPPAGEPAINTHOOK lpfnPagePaintHook;
  LPCSTR          lpPageSetupTemplateName;
  HGLOBAL         hPageSetupTemplate;
} PAGESETUPDLGA, *LPPAGESETUPDLGA;

Члены

lStructSize

Тип: DWORD

Размер данной структуры (в байтах).

hwndOwner

Тип: HWND

Дескриптор окна, которому принадлежит диалоговое окно. Это может быть любой допустимый дескриптор окна или значение NULL , если у диалогового окна нет владельца.

hDevMode

Тип: HGLOBAL

Дескриптор объекта глобальной памяти, который содержит структуру DEVMODE . При входных данных, если указан дескриптор, значения в соответствующей структуре DEVMODE используются для инициализации элементов управления в диалоговом окне. В выходных данных диалоговое окно устанавливает для hDevMode глобальный дескриптор памяти в структуру DEVMODE , содержащую значения, указывающие выбор пользователя. Если выбранные пользователем параметры недоступны, в диалоговом окне для параметра hDevMode устанавливается значение NULL.

hDevNames

Тип: HGLOBAL

Дескриптор объекта глобальной памяти, который содержит структуру DEVNAMES . Эта структура содержит три строки, указывающие имя драйвера, имя принтера и имя порта вывода. При входных данных, если указан дескриптор, строки в соответствующей структуре DEVNAMES используются для инициализации элементов управления в диалоговом окне. В выходных данных диалоговое окно устанавливает hDevNames в глобальный дескриптор памяти в структуру DEVNAMES , содержащую строки, указывающие выбор пользователя. Если выбранные пользователем параметры недоступны, в диалоговом окне для параметра hDevNames устанавливается значение NULL.

Flags

Тип: DWORD

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

Значение Значение
PSD_DEFAULTMINMARGINS
0x00000000
Задает минимальные значения, которые пользователь может указать, чтобы поля страницы были минимальными полями, разрешенными принтером. Это значение по умолчанию. Этот флаг игнорируется, если также указаны флаги PSD_MARGINS и PSD_MINMARGINS .
PSD_DISABLEMARGINS
0x00000010
Отключает элементы управления полями, не позволяя пользователю задавать поля.
PSD_DISABLEORIENTATION
0x00000100
Отключает элементы управления ориентацией, не позволяя пользователю задавать ориентацию страницы.
PSD_DISABLEPAGEPAINTING
0x00080000
Запрещает в диалоговом окне рисовать содержимое примера страницы. Если вы включите процедуру перехватчика PagePaintHook , вы по-прежнему сможете рисовать содержимое примера страницы.
PSD_DISABLEPAPER
0x00000200
Отключает элементы управления бумагой, запрещая пользователю задавать параметры страницы, такие как размер бумаги и источник.
PSD_DISABLEPRINTER
0x00000020
Является устаревшей.

Windows XP/2000: Отключает кнопку Принтер , не позволяя пользователю вызывать диалоговое окно, содержащее дополнительные сведения о настройке принтера.

PSD_ENABLEPAGEPAINTHOOK
0x00040000
Включает процедуру перехватчика, указанную в элементе lpfnPagePaintHook .
PSD_ENABLEPAGESETUPHOOK
0x00002000
Включает процедуру перехватчика, указанную в элементе lpfnPageSetupHook .
PSD_ENABLEPAGESETUPTEMPLATE
0x00008000
Указывает, что элементы hInstance и lpPageSetupTemplateName указывают шаблон диалогового окна для использования вместо шаблона по умолчанию.
PSD_ENABLEPAGESETUPTEMPLATEHANDLE
0x00020000
Указывает, что элемент hPageSetupTemplate идентифицирует блок данных, содержащий предварительно загруженный шаблон диалогового окна. Если этот флаг указан, система игнорирует элемент lpPageSetupTemplateName .
PSD_INHUNDREDTHSOFMILLIMETERS
0x00000008
Указывает, что сотые части миллиметров являются единицей измерения полей и размера бумаги. Значения в элементах rtMargin, rtMinMargin и ptPaperSize находятся в сотых миллиметрах. Этот флаг можно задать для входных данных, чтобы переопределить единицу измерения по умолчанию для языкового стандарта пользователя. При возврате функции диалоговое окно устанавливает этот флаг для указания используемых единиц.
PSD_INTHOUSANDTHSOFINCHES
0x00000004
Указывает, что тысячные дюймы являются единицей измерения полей и размера бумаги. Значения в элементах rtMargin, rtMinMargin и ptPaperSize находятся в тысячных дюймах. Этот флаг можно задать для входных данных, чтобы переопределить единицу измерения по умолчанию для языкового стандарта пользователя. При возврате функции диалоговое окно устанавливает этот флаг для указания используемых единиц.
PSD_INWININIINTLMEASURE
0x00000000
Зарезервировано.
PSD_MARGINS
0x00000002
Заставляет систему использовать значения, указанные в элементе rtMargin , в качестве начальной ширины для левого, верхнего, правого и нижнего полей. Если PSD_MARGINS не задан, система устанавливает начальную ширину в один дюйм для всех полей.
PSD_MINMARGINS
0x00000001
Заставляет систему использовать значения, указанные в элементе rtMinMargin , в качестве минимально допустимой ширины для левого, верхнего, правого и нижнего полей. Система запрещает пользователю вводить ширину, которая меньше указанного минимума. Если PSD_MINMARGINS не указан, система устанавливает минимально допустимую ширину, допустимую принтером.
PSD_NONETWORKBUTTON
0x00200000
Скрывает и отключает кнопку Сеть .
PSD_NOWARNING
0x00000080
Запрещает системе отображать предупреждающее сообщение, если принтер по умолчанию отсутствует.
PSD_RETURNDEFAULT
0x00000400

PageSetupDlg не отображает диалоговое окно. Вместо этого он задает элементы hDevNames и hDevMode для обработки структур DEVMODE и DEVNAMES , которые инициализированы для принтера по умолчанию системы. PageSetupDlg возвращает ошибку, если hDevNames или hDevMode не имеет значения NULL.

PSD_SHOWHELP
0x00000800
Вызывает отображение кнопки Справка в диалоговом окне. Участник hwndOwner должен указать окно для получения зарегистрированных сообщений HELPMSGSTRING , которые отправляет диалоговое окно, когда пользователь нажимает кнопку Справка .

ptPaperSize

Тип: POINT

Размеры бумаги, выбранной пользователем. Флаг PSD_INTHOUSANDTHSOFINCHES или PSD_INHUNDREDTHSOFMILLIMETERS указывает единицы измерения.

rtMinMargin

Тип: RECT

Минимальная допустимая ширина левого, верхнего, правого и нижнего полей. Система игнорирует этот элемент, если флаг PSD_MINMARGINS не установлен. Эти значения должны быть меньше или равны значениям, указанным в элементе rtMargin . Флаг PSD_INTHOUSANDTHSOFINCHES или PSD_INHUNDREDTHSOFMILLIMETERS указывает единицы измерения.

rtMargin

Тип: RECT

Ширина левого, верхнего, правого и нижнего полей. Если задать флаг PSD_MARGINS , rtMargin задает начальные значения полей. Когда PageSetupDlg возвращает значение , rtMargin содержит ширину полей, выбранную пользователем. Флаг PSD_INHUNDREDTHSOFMILLIMETERS или PSD_INTHOUSANDTHSOFINCHES указывает единицы измерения.

hInstance

Тип: HINSTANCE

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

lCustData

Тип: LPARAM

Определяемые приложением данные, которые система передает в процедуру перехватчика, определяемую членом lpfnPageSetupHook . Когда система отправляет WM_INITDIALOG сообщение в процедуру перехватчика, параметр lParam сообщения является указателем на структуру PAGESETUPDLG , указанную при создании диалогового окна. Процедура перехватчика может использовать этот указатель для получения значения lCustData .

lpfnPageSetupHook

Тип: LPPAGESETUPHOOK

Указатель на процедуру перехватчика PageSetupHook , которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот элемент игнорируется, если в элементе Flags не установлен флаг PSD_ENABLEPAGESETUPHOOK.

lpfnPagePaintHook

Тип: LPPAGEPAINTHOOK

Указатель на процедуру перехватчика PagePaintHook , которая получает сообщения WM_PSD_* из диалогового окна при перерисовке образца страницы. Обрабатывая сообщения, процедура перехватчика может настроить внешний вид страницы образца. Этот элемент игнорируется, если флаг PSD_ENABLEPAGEPAINTHOOK не установлен в элементе Flags .

lpPageSetupTemplateName

Тип: LPCTSTR

Имя ресурса шаблона диалогового окна в модуле, определяемого элементом hInstance . Этот шаблон заменяется стандартным шаблоном диалогового окна. Для нумерованных ресурсов диалогового окна lpPageSetupTemplateName может быть значением, возвращаемым макросом MAKEINTRESOURCE . Этот элемент игнорируется, если в элементе Flags не установлен флаг PSD_ENABLEPAGESETUPTEMPLATE.

hPageSetupTemplate

Тип: HGLOBAL

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

Комментарии

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

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

Примечание

Заголовок commdlg.h определяет PAGESETUPDLG в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть commdlg.h (включая Windows.h)

См. также раздел

Общая библиотека диалоговых окон

Основные понятия

DEVMODE

DEVNAMES

MAKEINTRESOURCE

Другие ресурсы

PagePaintHook

PageSetupDlg

PageSetupHook

Справочные материалы

WM_INITDIALOG