Діалогове вікно друку

Діалогове вікно друку дозволяє користувачеві вибрати параметри для конкретного завдання друку. Наприклад, користувач може вказати принтера, щоб використовувати, діапазон сторінок для друку та кількість копій.

Windows NT 5.0 і більш пізніх: Функція PrintDlgEx використовується для відображення аркуша властивостей друку , яка має загальний сторінку, що містить елементи керування, схожі на діалоговому вікні " Друк ". Аркуш властивостей може також мати додаткові певним застосунком і драйвера властивостей наступні Загальні сторінки.

Створити та відобразити діалогове вікно Друк ініціалізації PRINTDLG структури та проходження структура PrintDlg функції.

На рисунку нижче показано типовий діалогове вікно Друк.

Якщо натиснути кнопку " ОК ", PrintDlg повертає значення ІСТИНА і використовує PRINTDLG структури, щоб повернути інформацію про вибір користувача. Наприклад, hDevMode і hDevNames члени зазвичай повернення ручки глобальної пам'яті DEVMODE і DEVNAMES структур. Можна використовувати інформацію в цих структур створити пристрій контекст або контекст інформації для вибраного принтера.

Якщо користувач скасував "у діалоговому вікні" Друк "або виникає помилка, PrintDlg повертає значення ХИБНІСТЬ. Ви можете визначити причину помилки, за допомогою CommDlgExtendedError функції для отримання значення розширена помилка.

Діалогове вікно друку містить Діапазон друку групу перемикачів, які вказують, чи користувач хоче, щоб надрукувати всі сторінки, діапазон сторінок або лише виділений текст. Перед викликом PrintDlg, можна встановити одну з PD_ALLPAGES, PD_SELECTION або PD_PAGENUMS прапори, вказати, яку кнопку спочатку вибрано. Коли PrintDlg повертає TRUE, функція встановлює один ці прапори вказує вибір користувача. Якщо PD_PAGENUMS, nFromPage і nToPage члени PRINTDLG структура містить починаючи і закінчуючи сторінок, визначених користувачем. Щоб вимкнути радіо-кнопки сторінок і пов'язані З і елементах керування , встановіть PD_NOPAGENUMS прапор. Щоб вимкнути радіо виділення ", встановіть прапор PD_NOSELECTION.

Діалогове вікно містить текстове поле, в якому користувач може ввести кількість копій для друку. Якщо член 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 член. Ім'я пристрою в структурі DEVMODE , член dmDeviceName або в wDriverOffset член DEVNAMES структури повинні визначити принтер пристрій, що також відображається в розділі [Devices] ПЕРЕМОГУ.INI-файлу. Якщо пристрою немає у списку, PrintDlg повертає помилку.

Ви можете направити PrintDlg створити пристрій контекст або контекст інформацію для принтера, встановивши прапор PD_RETURNDC або PD_RETURNIC в PRINTDLG структури, член прапори . Функція повертає дескриптор контексту пристрою чи інформації контексті hDC члена. Якщо ви використовуєте PD_RETURNDC прапор, можна використовувати пристрій контекст для отримання виводу для принтера.

Щоб отримати відомості про принтер за замовчуванням без відображення діалогового вікна Друк , встановити прапор PD_RETURNDEFAULT. У цьому випадку PrintDlg повертає відразу ж після встановлення hDevMode та hDevNames членів до ручки для структури, що містять інформацію.

За замовчуванням PrintDlg відображає повідомлення ящики, коли зустрічаються. Наприклад, функція відображає повідомлення про помилку, якщо не встановлено принтер. Щоб заборонити відображення цих попереджень функції, встановити прапор PD_NOWARNING.

Index