Диалоговое окно "Печать"

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

Windows NT 5.0 и более поздних: Функцию PrintDlgEx можно использовать для отображения печати листа свойств, которая имеет Общие страницы, содержащей элементы управления, аналогичные диалоговое окно Печать . Окно свойств также может иметь дополнительные приложения и конкретного драйвера страницы свойств после Общие страницы.

Создать и отобразить диалоговое окно Печать , инициализация структуры PRINTDLG и передачи структуры в функцию PrintDlg.

На следующем рисунке показано типичное диалоговое окно Печать.

Если пользователь нажимает кнопку OK , PrintDlg возвращает значение TRUE и использует структуру PRINTDLG для возвращения сведений о выбранных пользователем. К примеру, hDevMode и hDevNames члены обычно возвращают глобальной памяти ручки для структуры DEVMODE и DEVNAMES, относящейся . Можно использовать информацию в этих структурах для создания контекста устройства или контекст информации для выбранного принтера.

Если пользователь отменит диалогового окна Печать или возникает ошибка, PrintDlg возвращает FALSE. Можно определить причину ошибки, используя функцию CommDlgExtendedError для получения значения об ошибке.

Диалоговое окно Печать включает Диапазон печати группу переключателей, указывают ли пользователь хочет печатать все страницы, диапазон страниц или только выделенный текст. Перед вызовом PrintDlg, можно задать один из PD_ALLPAGES, PD_SELECTION или PD_PAGENUMS флагов указать, какая кнопка изначально выбран. Когда PrintDlg возвращает значение TRUE, функция устанавливает один из этих флагов для обозначения выбора пользователей. Если имеет значение PD_PAGENUMS, nFromPage и nToPage члены PRINTDLG структуры содержат начальные и конечные страницы, указанные пользователем. Чтобы отключить переключатель на страницы и ее ассоциированных С и для элементов управления редактирования, установите флаг PD_NOPAGENUMS. Чтобы отключить переключатель выбора , установите флаг PD_NOSELECTION.

Диалоговое окно содержит элемент управления edit, в котором пользователь может ввести количество копий для печати. Если член hDevMode структуры PRINTDLG не NULL, член dmCopies структуры DEVMODE определяет начальное значение для данного элемента управления редактирования. Если hDevMode имеет значение NULL, nCopies член PRINTDLG структуры определяет начальное значение. По возвращении из PrintDlg nCopies обычно указывает число копий, заданное пользователем. Однако если установлен флаг PD_USEDEVMODECOPIESANDCOLLATE при создании диалогового окна, nCopies всегда имеет значение 1 о возвращении и dmCopies член DEVMODE указывает количество копий для печати.

Флажок Разобрать по копиям указывает ли пользователь хочет собирать на страницы при печати нескольких копий. Установлен флаг PD_COLLATE, если установлен флажок Разобрать по копиям . Если приложение поддерживает несколько копий или смоделированные параметры сортировки, установите флаг PD_USEDEVMODECOPIESANDCOLLATE в флаги член PRINTDLG структуры. Это отключает флажок Разобрать по копиям и Число копий редактировать элемент управления, если драйвер принтера поддерживает несколько копий и параметры сортировки.

Флажок Печать В файл указывает ли пользователь хочет отправить выходные данные в файл, а не на принтере. Таким образом изначально установлен флажок можно установить флаг PD_PRINTTOFILE. Чтобы скрыть флажок, установите флаг PD_HIDEPRINTTOFILE. Чтобы отключить его, установите флаг PD_DISABLEPRINTTOFILE. Если пользователь выбирает параметр Печать В файл , PrintDlg устанавливает флаг PD_PRINTTOFILE и возвращает "файл:" на смещение, обозначенных член wOutputOffset структуры DEVNAMES, относящейся . При вызове StartDoc функция для начала печати операции, укажите это "файл:" строка в элементе lpszOutput DOCINFO структуры. Указание этой строки вызывает подсистему печати для запроса у пользователя имя выходного файла.

По умолчанию диалоговое окно Печать первоначально отображает сведения о текущем принтер по умолчанию. Вы можете направить его для отображения информации для еще один принтер установлен путем инициализации DEVMODE или структуры DEVNAMES, относящейся и присвоения глобальной памяти обрабатывать для структуры в hDevMode или hDevNames член. Имя устройства, указанный вами в dmDeviceName члена структуры DEVMODE или член wDriverOffset структуры DEVNAMES, относящейся должен идентифицировать устройство принтера, также перечислены в разделе [Devices] за победу.Ini-файл. Если устройство отсутствует в списке, PrintDlg возвращает сообщение об ошибке.

Вы можете направить PrintDlg для создания контекста устройства или информацию контекста для принтера, установив флаг PD_RETURNDC или PD_RETURNIC в флаги член PRINTDLG структуры. Функция возвращает дескриптор контекста устройства или информацию контекста в hDC -членов. Если вы используете PD_RETURNDC флаг, можно использовать контекст устройства для создания выходных для принтера.

Для получения сведений о принтере по умолчанию без отображения диалогового окна Печать , установите флаг PD_RETURNDEFAULT. В этом случае PrintDlg возвращается сразу же после установки hDevMode и hDevNames членов ручки для структур, содержащих информацию.

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

Index