4.36.3.6 - Структура 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). Когда блок диалога возвращает значение, он устанавливает эти флажки, чтобы обозначить ввод данных пользователем. Этот элемент может быть комбинацией следующих флажков:

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 
Unicode				WinNT
Замечания по платформе		Не имеется

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков - 20.04.2002