Класс CPrintDialogEx
Инкапсулирует службы, предоставляемые листом свойств 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();
Возвращаемое значение
Обработайте только что созданный контекст устройства принтера.
Замечания
Возвращенный контроллер домена также хранится в элементе hDC
m_pdex.
Предполагается, что этот контроллер домена является текущим контроллером домена принтера, а любые другие ранее полученные контроллеры данных принтера должны быть удалены. Эту функцию можно вызвать, и результирующий контроллер домена, не отображая диалоговое окно "Печать".
CPrintDialogEx::D oModal
Вызовите эту функцию, чтобы отобразить лист свойств Windows Print и разрешить пользователю выбрать различные параметры печати, такие как количество копий, диапазон страниц и сортировка копий.
virtual INT_PTR DoModal();
Возвращаемое значение
Возвращаемое значение INT_PTR фактически является HRESULT. См. раздел "Возвращаемые значения" в PrintDlgEx в пакете SDK для Windows.
Замечания
Если вы хотите инициализировать различные параметры диалогового окна печати, задав элементы структуры, необходимо сделать это перед вызовомDoModal
, но после создания объекта диалогового m_pdex
окна.
После вызова 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 (см. сведения nPageRanges
nMaxPageRanges
о lpPageRanges
структуре PRINTDLGEX в пакете SDK для Windows).
CPrintDialogEx::P rintSelection
Вызовите эту функцию после вызова DoModal
, чтобы определить, следует ли печатать только выбранные в данный момент элементы.
BOOL PrintSelection() const;
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если печатаются только выбранные элементы; в противном случае ЗНАЧЕНИЕ FALSE.