Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Инкапсулирует службы, предоставляемые листом свойств Windows Print.
Синтаксис
class CPrintDialogEx : public CCommonDialog
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
| CPrintDialogEx::CPrintDialogEx | Формирует объект CPrintDialogEx. |
Открытые методы
| Имя | Описание |
|---|---|
| CPrintDialogEx::CreatePrinterDC | Создает контекст устройства принтера без отображения диалогового окна "Печать". |
| CPrintDialogEx::D oModal | Отображает диалоговое окно и позволяет пользователю выбирать. |
| CPrintDialogEx::GetCopies | Извлекает количество запрошенных копий. |
| CPrintDialogEx::GetDefaults | Извлекает значения по умолчанию устройства без отображения диалогового окна. |
| CPrintDialogEx::GetDeviceName | Извлекает имя выбранного устройства принтера. |
| CPrintDialogEx::GetDevMode | Извлекает структуру DEVMODE . |
| CPrintDialogEx::GetDriverName | Извлекает имя драйвера устройства принтера, определенного системой. |
| CPrintDialogEx::GetPortName | Извлекает имя выбранного порта принтера. |
| CPrintDialogEx::GetPrinterDC | Извлекает дескриптор контекста устройства принтера. |
| CPrintDialogEx::P rintAll | Определяет, следует ли печатать все страницы документа. |
| CPrintDialogEx::P rintCollate | Определяет, запрашиваются ли сортировка копий. |
| CPrintDialogEx::P rintCurrentPage | Определяет, следует ли печатать текущую страницу документа. |
| CPrintDialogEx::P rintRange | Определяет, следует ли печатать только указанный диапазон страниц. |
| CPrintDialogEx::P rintSelection | Определяет, следует ли печатать только выбранные в данный момент элементы. |
Открытые члены данных
| Имя | Описание |
|---|---|
| CPrintDialogEx::m_pdex | Структура, используемая для настройки CPrintDialogEx объекта. |
Замечания
Платформу можно использовать для обработки многих аспектов процесса печати приложения. Дополнительные сведения об использовании платформы для обработки задач печати см. в статье "Печать".
Если вы хотите, чтобы приложение обрабатывало печать без участия платформы, можно использовать CPrintDialogEx класс "как есть" с предоставленным конструктором, или вы можете наследить собственный класс диалогов от CPrintDialogEx и написать конструктор в соответствии с вашими потребностями. В любом случае эти диалоговые окна будут вести себя как стандартные диалоговые окна MFC, так как они являются производными от класса CCommonDialog.
Чтобы использовать CPrintDialogEx объект, сначала создайте объект с помощью конструктора CPrintDialogEx . После создания диалогового окна можно задать или изменить любые значения в структуре m_pdex , чтобы инициализировать значения элементов управления диалогового окна. Структура m_pdex имеет тип PRINTDLGEX. Дополнительные сведения об этой структуре см. в пакете SDK для Windows.
Если вы не предоставляете собственные дескрипторы m_pdex для hDevMode элементов и hDevNames элементов, обязательно вызовите функцию GlobalFree Windows для этих дескрипторов при завершении работы с диалоговым окном.
После инициализации элементов управления диалогового окна вызовите DoModal функцию-член, чтобы отобразить диалоговое окно и разрешить пользователю выбрать параметры печати. При DoModal возврате можно определить, выбран ли пользователь кнопку "ОК", "Применить" или "Отмена".
Если пользователь нажимал кнопку ОК, можно использовать CPrintDialogExфункции-члены для получения входных данных пользователем.
Функция-член CPrintDialogEx::GetDefaults полезна для получения текущего принтера по умолчанию без отображения диалогового окна. Этот метод не требует взаимодействия с пользователем.
Функцию Windows CommDlgExtendedError можно использовать, чтобы определить, произошла ли ошибка во время инициализации диалогового окна и узнать больше об ошибке. Дополнительные сведения об этой функции см. в пакете SDK для Windows.
Дополнительные сведения об использовании CPrintDialogExсм. в разделе "Общие классы диалогов".
Иерархия наследования
IObjectWithSite
IPrintDialogCallback
CPrintDialogEx
Требования
Заголовок: afxdlgs.h
CPrintDialogEx::CPrintDialogEx
Создает лист свойств Windows Print.
CPrintDialogEx(
DWORD dwFlags = PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION | PD_NOCURRENTPAGE,
CWnd* pParentWnd = NULL);
Параметры
dwFlags
Один или несколько флагов, которые можно использовать для настройки параметров диалогового окна, в сочетании с побитовым оператором OR. Например, флаг PD_ALLPAGES задает диапазон печати по умолчанию для всех страниц документа. Дополнительные сведения об этих флагах см. в структуре PRINTDLGEX в пакете SDK для Windows.
pParentWnd
Указатель на окно родительского или владельца диалогового окна.
Замечания
Эта функция-член создает только объект. Используйте функцию-член для DoModal отображения диалогового окна.
CPrintDialogEx::CreatePrinterDC
Создает контекст устройства принтера (DC) из структур DEVMODE и DEVNAMES .
HDC CreatePrinterDC();
Возвращаемое значение
Обработайте только что созданный контекст устройства принтера.
Замечания
Возвращенный контроллер домена также хранится в элементе hDCm_pdex.
Предполагается, что этот контроллер домена является текущим контроллером домена принтера, а любые другие ранее полученные контроллеры данных принтера должны быть удалены. Эту функцию можно вызвать, и результирующий контроллер домена, не отображая диалоговое окно "Печать".
CPrintDialogEx::D oModal
Вызовите эту функцию, чтобы отобразить лист свойств Windows Print и разрешить пользователю выбрать различные параметры печати, такие как количество копий, диапазон страниц и сортировка копий.
virtual INT_PTR DoModal();
Возвращаемое значение
Возвращаемое значение INT_PTR фактически является HRESULT. См. раздел "Возвращаемые значения" в PrintDlgEx в пакете SDK для Windows.
Замечания
Если вы хотите инициализировать различные параметры диалогового окна печати, задав элементы структуры, необходимо сделать это перед вызовомm_pdex, но после создания объекта диалогового DoModal окна.
После вызова DoModalможно вызвать другие функции-члены, чтобы получить параметры или данные, введенные пользователем в диалоговом окне.
Если флаг PD_RETURNDC используется при вызове DoModal, контроллер домена принтера будет возвращен в hDC элементе m_pdex. Этот контроллер домена должен быть освобожден с помощью вызова DeleteDC вызывающим элементом CPrintDialogEx.
CPrintDialogEx::GetCopies
Вызовите эту функцию после вызова DoModal , чтобы получить количество запрошенных копий.
int GetCopies() const;
Возвращаемое значение
Количество запрошенных копий.
CPrintDialogEx::GetDefaults
Вызовите эту функцию, чтобы получить значения по умолчанию устройства принтера по умолчанию без отображения диалогового окна.
BOOL GetDefaults();
Возвращаемое значение
Значение TRUE, если выполнено успешно, в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Создает контекст устройства принтера (DC) из структур DEVMODE и DEVNAMES .
GetDefaults не отображает лист свойств Print. Вместо этого он задает hDevNames и hDevMode члены m_pdex для обработки структур DEVMODE и DEVNAMES , инициализируемых для системного принтера по умолчанию. Оба hDevNames значения hDevMode должны иметь значение NULL или GetDefaults завершиться ошибкой.
Если установлен флаг PD_RETURNDC, эта функция будет возвращать hDevNames не только вызывающий объект и hDevMode (расположенный в m_pdex.hDevNames иm_pdex.hDevMode)), но и возвращать контроллер контроллера домена принтера.m_pdex.hDC Вызывающий объект несет ответственность за удаление контроллера домена принтера и вызов функции Windows GlobalFree на дескрипторах CPrintDialogEx .
CPrintDialogEx::GetDeviceName
Вызовите эту функцию после вызова DoModal , чтобы получить имя выбранного принтера или после вызова GetDefaults , чтобы получить имя принтера по умолчанию.
CString GetDeviceName() const;
Возвращаемое значение
Имя выбранного принтера.
Замечания
Используйте указатель на CString объект, возвращаемый GetDeviceName в качестве значения lpszDeviceName в вызове CDC::CreateDC.
CPrintDialogEx::GetDevMode
Вызовите эту функцию после вызова DoModal или GetDefaults , чтобы получить сведения о устройстве печати.
LPDEVMODE GetDevMode() const;
Возвращаемое значение
Структура данных DEVMODE, содержащая сведения об инициализации устройства и среде драйвера печати. Необходимо разблокировать память, взятую этой структурой, с помощью функции Windows GlobalUnlock , которая описана в пакете SDK для Windows.
CPrintDialogEx::GetDriverName
Вызовите эту функцию после вызова DoModal или GetDefaults , чтобы получить имя драйвера устройства принтера, определенного системой.
CString GetDriverName() const;
Возвращаемое значение
Указание CString системного имени драйвера.
Замечания
Используйте указатель на CString объект, возвращаемый GetDriverName в качестве значения lpszDriverName в вызове CDC::CreateDC.
CPrintDialogEx::GetPortName
Вызовите эту функцию после вызова DoModal или GetDefaults , чтобы получить имя выбранного порта принтера.
CString GetPortName() const;
Возвращаемое значение
Имя выбранного порта принтера.
CPrintDialogEx::GetPrinterDC
Возвращает дескриптор контекста устройства принтера.
HDC GetPrinterDC() const;
Возвращаемое значение
Дескриптор контекста устройства принтера.
Замечания
Необходимо вызвать функцию Windows DeleteDC , чтобы удалить контекст устройства при его использовании.
CPrintDialogEx::m_pdex
Структура PRINTDLGEX, члены которой хранят характеристики объекта диалогового окна.
PRINTDLGEX m_pdex;
Замечания
После создания CPrintDialogEx объекта можно задать m_pdex различные аспекты диалогового окна перед вызовом функции члена DoModal . Дополнительные сведения о m_pdex структуре см. в разделе PRINTDLGEX в пакете SDK для Windows.
Если изменить m_pdex член данных напрямую, вы переопределите любое поведение по умолчанию.
CPrintDialogEx::P rintAll
Вызовите эту функцию после вызова DoModal , чтобы определить, следует ли печатать все страницы в документе.
BOOL PrintAll() const;
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если все страницы в документе должны быть напечатаны; в противном случае ЗНАЧЕНИЕ FALSE.
CPrintDialogEx::P rintCollate
Вызовите эту функцию после вызова DoModal , чтобы определить, должен ли принтер сворачивать все печатные копии документа.
BOOL PrintCollate() const;
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если пользователь выбирает флажок сортировки в диалоговом окне; в противном случае ЗНАЧЕНИЕ FALSE.
CPrintDialogEx::P rintCurrentPage
Вызовите эту функцию после вызова DoModal , чтобы определить, следует ли печатать текущую страницу в документе.
BOOL PrintCurrentPage() const;
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если в диалоговом окне печати выбрана текущая страница ; в противном случае — ЗНАЧЕНИЕ FALSE.
CPrintDialogEx::P rintRange
Вызовите эту функцию после вызова DoModal , чтобы определить, следует ли печатать только диапазон страниц в документе.
BOOL PrintRange() const;
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если печатаются только диапазон страниц в документе; в противном случае ЗНАЧЕНИЕ FALSE.
Замечания
Указанные диапазоны страниц можно определить из m_pdex (см. сведения nPageRangesnMaxPageRangesо lpPageRangesструктуре PRINTDLGEX в пакете SDK для Windows).
CPrintDialogEx::P rintSelection
Вызовите эту функцию после вызова DoModal , чтобы определить, следует ли печатать только выбранные в данный момент элементы.
BOOL PrintSelection() const;
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если печатаются только выбранные элементы; в противном случае ЗНАЧЕНИЕ FALSE.