[Это предварительный документации и темы для изменения].
PRINTDLGEX структура содержит сведения, которые использует функцию PrintDlgEx для инициализации печати окна свойств. После того, как пользователь закроет окно свойств, система использует эту структуру для возвращения сведений о выбранных пользователем.
typedef struct tagPDEX {}
DWORD lStructSize;
HWND hwndOwner;
HGLOBAL hDevMode;
HGLOBAL hDevNames;
HDC hDC;
DWORD Флаги;
DWORD Flags2;
DWORD ExclusionFlags;
DWORD nPageRanges;
DWORD nMaxPageRanges;
LPPRINTPAGERANGE lpPageRanges;
DWORD nMinPage;
DWORD nMaxPage;
DWORD nCopies;
HINSTANCE hInstance;
LPCTSTR lpPrintTemplateName;
LPUNKNOWN lpCallback;
DWORD nPropertyPages;
HPROPSHEETPAGE * lphPropertyPages;
DWORD nStartPage;
DWORD dwResultAction;
} PRINTDLGEX, * LPPRINTDLGEX
Если hDevMode равен NULL на входе, PrintDlgEx выделяет память для структуры DEVMODE , инициализирует его членов для указания пользователем данные и возвращает дескриптор, который идентифицирует его.
Для получения дополнительных сведений о членах hDevMode и hDevNames см. раздел Примечания в конце данной темы.
Член hDevNames может иметь значение NULL, в этом случае, PrintDlgEx выделяет память для структуры DEVNAMES, относящейся , инициализирует ввода своих членов для обозначения пользователя, и возвращает дескриптор, который определяет его.
Для получения дополнительных сведений о членах hDevMode и hDevNames см. раздел Примечания в конце данной темы.
| PD_ALLPAGES | |
| По умолчанию флаг, который указывает, что все изначально переключателя. Этот флаг используется в качестве заполнителя для обозначения, что флаги PD_PAGENUMS, PD_SELECTION и PD_CURRENTPAGE не указаны. | |
| PD_COLLATE | |
| Если этот флаг установлен, установлен флажок Разобрать по копиям. Если этот флаг установлен, когда функция PrintDlgEx возвращает, приложение должно эмулировать параметры сортировки нескольких копий. Для получения дополнительной информации смотрите описание флага PD_USEDEVMODECOPIESANDCOLLATE. |
|
| PD_CURRENTPAGE | |
| Если этот флаг установлен, Текущая страница переключателя. Если ни один из флагов PD_PAGENUMS, PD_SELECTION или PD_CURRENTPAGE, все переключателя. | |
| PD_DISABLEPRINTTOFILE | |
| Отключает флажок Печать в файл. | |
| PD_ENABLEPRINTTEMPLATE | |
| Указывает, что hInstance и lpPrintTemplateName члены укажите замена для диалогового окна поле шаблона по умолчанию в нижней части общей страницы. По умолчанию шаблон содержит элементы управления, аналогичные тем, которые из диалогового окна Печать . Система использует указанный шаблон для создания окна, которое является потомком на странице Общие. | |
| PD_ENABLEPRINTTEMPLATEHANDLE | |
| Указывает, что член hInstance определяет блок данных, содержащего шаблон box предустановленной диалогового окна. Этот шаблон заменяет шаблон по умолчанию диалогового окна поле в нижней части общей страницы. Система использует указанный шаблон для создания окна, которое является потомком на общей странице. Система игнорирует lpPrintTemplateName члена, если этот флаг задан. | |
| PD_EXCLUSIONFLAGS | |
| Указывает, что член ExclusionFlags идентифицирует элементы будут исключены из страниц свойств драйвера принтера. Если этот флаг не установлен, элементы будут исключены по умолчанию из страниц свойств драйвера принтера. Исключения предотвратить дублирование элементов среди на общей странице, определяемый приложением страниц и страниц драйвера принтера. | |
| PD_HIDEPRINTTOFILE | |
| Скрывает флажок Печать в файл. | |
| PD_NOCURRENTPAGE | |
| Отключает переключатель Текущей страницы. | |
| PD_NOPAGENUMS | |
| Отключает переключатель страниц и связанных с ними элементов управления. | |
| PD_NOSELECTION | |
| Отключает переключатель на Выбор. | |
| PD_NOWARNING | |
| Запрещает отображение при возникновении ошибки предупреждающее сообщение. | |
| PD_PAGENUMS | |
| Если этот флаг установлен, выбран переключатель страницы . Если ни один из флагов PD_PAGENUMS, PD_SELECTION или PD_CURRENTPAGE, все переключателя. Если этот флаг установлен, когда функция PrintDlgEx возвращает, член lpPageRanges указывает диапазоны страниц, указанный пользователем. |
|
| PD_PRINTTOFILE | |
| Если этот флаг установлен, флажок Печать в файл установлен. Если этот флаг имеет значение при возвращении PrintDlgEx , смещение, обозначенных член wOutputOffset структуры DEVNAMES, относящейся содержит строку "файл:". При вызове StartDoc функция для начала печати операции, укажите это "файл:" строка в элементе lpszOutput DOCINFO структуры. Указание этой строки вызывает подсистему печати для запроса у пользователя имя выходного файла. |
|
| PD_RETURNDC | |
| Вызывает PrintDlgEx для возврата контекст устройства, соответствующие параметры в окне свойств пользователя. В hDC возвращается контекст устройства. | |
| PD_RETURNDEFAULT | |
| Если этот флаг указан, функция PrintDlgEx не отображает окно свойств. Вместо этого, он задает членов hDevNames и hDevMode ручки для DEVMODE и DEVNAMES, относящейся структур, которые инициализируются для принтера по умолчанию системы. HDevNames и hDevMode должен иметь значение NULL, или PrintDlgEx возвращает сообщение об ошибке. | |
| PD_RETURNIC | |
| По аналогии с флагом PD_RETURNDC, за исключением этот флаг возвращает информацию контекста, а не контекст устройства. Если не указаны ни PD_RETURNDC, ни PD_RETURNIC, hDC не на выходе. | |
| PD_SELECTION | |
| Если этот флаг установлен, Выбор переключателя. Если ни один из флагов PD_PAGENUMS, PD_SELECTION или PD_CURRENTPAGE, все переключателя. |
|
| PD_USEDEVMODECOPIES | |
| Же самое, что PD_USEDEVMODECOPIESANDCOLLATE | |
| PD_USEDEVMODECOPIESANDCOLLATE | |
| Этот флаг указывает, поддерживает ли приложение несколько копий и параметры сортировки. Установите этот флаг на входе указать, что приложение не поддерживает несколько копий и параметры сортировки. В этом случае член nCopies структуры PRINTDLGEX всегда возвращает значение 1, и никогда не PD_COLLATE устанавливается в элементе флаги. Если этот флаг не установлен, приложение отвечает за печати и обобщения нескольких копий. В этом случае член nCopies структуры PRINTDLGEX указывает количество копий, которое пользователь хочет печатать, и флаг PD_COLLATE в странах-членах флаги указывает ли пользователь хочет параметров сортировки. Независимо от ли этот флаг установлен приложение может определить от nCopies и PD_COLLATE количество копий для визуализации и следует ли печатать их воедино. Если установлен этот флаг, и драйвер принтера не поддерживает несколько копий, копий элемент управления отключен. Аналогично если установлен этот флаг, и драйвер принтера не поддерживает параметры сортировки, отключен флажок Разобрать по копиям. Члены dmCopies и dmCollate структуры DEVMODE содержат копии и сопоставления информации, используемый драйвером принтера. Если установлен этот флаг, и драйвер принтера поддерживает несколько копий, член dmCopies указывает количество копий, запрошенных пользователем. Если установлен этот флаг, и драйвер принтера поддерживает параметры сортировки, член dmCollate структуры DEVMODE указывает ли пользователь хочет параметров сортировки. Если этот флаг не установлен, член dmCopies всегда возвращает значение 1, а dmCollate член всегда равен нулю. |
|
| PD_EXCL_COPIESANDCOLLATE | |
| Исключает копий и Collate элементы управления из страниц свойств драйвера принтера в таблице свойств печати . Этот флаг всегда должен иметь значение, когда приложение использует по умолчанию копий и Collate элементы управления, предоставляемые в нижней части странице Общие окна свойств печати. | |
Если задан флаг PD_NOPAGENUMS, это значение не является допустимым. Если не указан флаг PD_NOPAGENUMS, lpPageRanges должен быть не NULL.
По возвращении из PrintDlgEx nCopies содержит фактическое число копий, которое необходимо распечатать приложение. Это значение зависит от того, отвечает ли приложение или драйвер принтера для печати нескольких копий. Если флаг PD_USEDEVMODECOPIESANDCOLLATE установлен в странах-членах флагов , nCopies всегда 1 на возвращение, и драйвер принтера отвечает за печать нескольких копий. Если флаг не установлен, приложение отвечает за печать количество копий, предусмотренных nCopies. Для получения дополнительной информации смотрите описание флага PD_USEDEVMODECOPIESANDCOLLATE.
Объект должен содержать класс IPrintDialogCallback , чтобы получать сообщения для диалогового окна ребенка в нижней части страницы Общие.
Объект обратного вызова должен также содержать класс IObjectWithSite получить указатель на интерфейс IPrintDialogServices . Вызовы функций PrintDlgEx QueryInterface на объект обратного вызова для IID_IPrintDialogCallback и IID_IObjectWithSite , с тем чтобы определить, какие интерфейсы поддерживаются.
Если вы не хотите получить любую из обратного вызова информации, lpCallback значение NULL.
| Значение | Значение |
|---|---|
| PD_RESULT_APPLY | Пользователь нажал кнопку Применить и затем нажали кнопку Отмена . Это означает, что пользователь хочет, чтобы применить изменения, внесенные в окне свойств, но печатать не нужно еще. PRINTDLGEX структура содержит сведения, указанные пользователем в то время, что была нажата кнопка Применить. |
| PD_RESULT_CANCEL | Пользователь нажал кнопку Отмена . Информация, содержащаяся в PRINTDLGEX структуре не меняется. |
| PD_RESULT_PRINT | Пользователь нажал кнопку Печать . PRINTDLGEX структура содержит сведения, указанные пользователем. |
При вызове функции PrintDlgEx , убедитесь, что член wDeviceOffset структуры DEVNAMES, относящейся идентичен член dmDeviceName структуры DEVMODE . Если эти члены не указан тот же принтер, PrintDlgEx инициализирует окна свойств с помощью принтера, указанный член wDeviceOffset.
Как правило если hDevMode и hDevNames равны NULL, PrintDlgEx инициализирует окна свойств, используя текущий принтер по умолчанию. Однако если установлен флаг PD_RETURNDEFAULT, и hDevMode и hDevNames равны NULL, PrintDlgEx использует членов hDevNames и hDevMode для возвращения сведений о текущем принтер по умолчанию без отображения окна свойств.
Во время выполнения PrintDlgEx DEVMODE и DEVNAMES, относящейся структуры, которые были указаны в PRINTDLGEX структуре могут не всегда содержат текущие данные. По этой причине страницы свойств конкретного приложения, так и IPrintDialogCallback программы для начальной страницы следует использовать интерфейс IPrintDialogServices для получения сведений о состоянии текущего принтера.
nbsp; Windows &NT: требует версии 5.0 или более поздней.
Windows:Не поддерживается.
Windows CE:Не поддерживается.
Заголовок:Объявленные в commdlg.h.
Импорта библиотеки:Используйте comdlg32.lib.
Юникод:Определяется как структуры Unicode и ANSI.
Common Dialog Box Library Overview, Common Dialog Box Structures, CreateDC, CreateIC, CreatePropertySheetPage, DEVMODE, DEVNAMES, IObjectWithSite, IPrintDialogCallback, IPrintDialogServices, PrintDlgEx