PRINTDLGEX

[Це попередні документації та тема змінити].

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 

Члени

lStructSize
Визначає розмір структури в байт.
hwndOwner
Ручка вікна, що володіє аркуш властивостей. Цей компонент має бути дійсним вікно держак; Вона не може бути ПУСТИМ.
hDevMode
Обробляти рухомого глобальної пам'яті об'єкт, що містить на DEVMODE структури. Якщо hDevMode не NULL на вводу, потрібно виділити рухомому блоці пам'яті для DEVMODE структури та ініціалізувати його членів. Функція PrintDlgEx використовує ініціалізації вхідних datato елементи керування у вікні властивостей. Коли PrintDlgEx повертається, члени DEVMODE вказати користувача вводу.

Якщо hDevMode NULL на введення, PrintDlgEx виділення пам'яті для структури DEVMODE ініціалізує своїх членів для позначення користувача вводу та повертає ручкою, що ідентифікує його.

Щоб отримати додаткові відомості про hDevMode і hDevNames членів перегляньте розділ зауваження в кінці цього розділу.

hDevNames
Ручка для рухомого глобальної пам'яті об'єкт, що містить DEVNAMES структури. Якщо hDevNames не NULL на вводу, потрібно виділити рухомому блоці пам'яті для DEVNAMES структури та ініціалізувати його членів. Функція PrintDlgEx використовує ініціалізації вхідних datato елементи керування у вікні властивостей. Коли PrintDlgEx повертається, DEVNAMES членів містять інформацію для принтера обраний користувачем. Можна використовувати цю інформацію для створення пристрій контекст або контекст інформації.

Член hDevNames може бути NULL, в цьому випадку, PrintDlgEx виділення пам'яті для DEVNAMES структури, initializes внесок своїх членів, вказує користувач, і повертає на ручку, що ідентифікує його.

Щоб отримати додаткові відомості про hDevMode і hDevNames членів перегляньте розділ зауваження в кінці цього розділу.

hDC
Обробляти пристрій контекст або контекст інформації, залежно від того, чи прапори член визначає прапор PD_RETURNDC або PC_RETURNIC. Якщо вказано ні прапор, значення цей компонент є невизначеною. Якщо вказані обидва прапори, PD_RETURNDC має пріоритет.
Прапори
Набір біт прапори, які можна використовувати для ініціалізації друку аркуша властивостей. Коли функція PrintDlgEx повертає, встановлює ці прапори вказати користувача вводу. Цей компонент може бути поєднання таких прапори.
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 член ідентифікує блок даних, яка містить попередньо діалоговому вікні шаблон. Цей шаблон замінює діалоговому вікні шаблон за промовчанням у нижній частині сторінки, що Загальні . Система використовує вказаний шаблон для створення вікна, що дитина Загальні сторінки. Система ігнорує член 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 завжди нуль.


Flags2
Захищені; повинні бути нульовим.
ExclusionFlags
Набір біт прапори, які можна вилучити елементи від драйвера принтера сторінки властивостей у вікні властивостей друку . Це значення використовується, лише якщо PD_EXCLUSIONFLAGS прапор у член прапори . Виключення прапори слід використовувати, лише якщо елемент бути виключений буде включений на будь-якому загальну сторінку або на визначений у застосунку сторінки у вікні властивостей друку . Цей компонент можна вказати такі прапор.
PD_EXCL_COPIESANDCOLLATE
Виключає копій і розібрати за копіями контролю від сторінки властивостей драйвер принтера у аркуша властивостей друку . Цей прапор завжди повинен бути встановлений, коли застосунок використовує за замовчуванням копій і розібрати за копіями елементи надаються нижньої частину загальних сторінки друку аркуша.

nPageRanges
На введення установити цей компонент початковий номер діапазонів сторінок у масив lpPageRanges . Коли функція PrintDlgEx повертає, nPageRanges про кількість вказаною діапазонів зберігаються в lpPageRanges масиву. Якщо вказано PD_NOPAGENUMS прапор, це значення неприпустиме.
nMaxPageRanges
Задає розмір, елементів масиву, lpPageRanges буфера. Це значення вказує на максимальну кількість діапазонів сторінок, які зберігаються в масиві. Якщо вказано PD_NOPAGENUMS прапор, це значення неприпустиме. Якщо PD_NOPAGENUMS прапор не вказано, це значення має бути більшим за нуль.
lpPageRanges
Вказівник миші в буфер, яка містить масив PRINTPAGERANGE структур. При вводі масив містить діапазони початкової сторінки для відображення сторінки редагування елемента керування. Коли функція PrintDlgEx повертає, масив містить діапазонів сторінок, визначених користувачем.

Якщо вказано PD_NOPAGENUMS прапор, це значення неприпустиме. Якщо не вказано PD_NOPAGENUMS прапор, lpPageRanges повинна бути не NULL.

nMinPage
Визначає мінімальне значення для діапазонів сторінок, вказаного в контроль редагування сторінок . Якщо вказано PD_NOPAGENUMS прапор, це значення неприпустиме.
nMaxPage
Визначає максимальне значення для діапазонів сторінок, вказаного в контроль редагування сторінок . Якщо вказано PD_NOPAGENUMS прапор, це значення неприпустиме.
nCopies
Містить початковий номер копії елемента керування edit копії , якщо hDevMode має значення NULL; в іншому випадку, член dmCopies на DEVMODE структура містить початкове значення.

Коли PrintDlgEx повертається, nCopies містить фактична кількість копій, які програми потрібно друкувати. Це значення залежить від того, чи програму або драйвер принтера несе відповідальність за Друк декількох копій. Якщо в прапори член PD_USEDEVMODECOPIESANDCOLLATE прапор, nCopies завжди 1 на повернення, і драйвер принтера несе відповідальність за Друк декількох копій. Якщо не встановлено позначку, застосування несе відповідальність за друку кількість копій, що визначений nCopies. Докладніше перегляньте опис прапор PD_USEDEVMODECOPIESANDCOLLATE.

hInstance
Якщо в прапори член PD_ENABLEPRINTTEMPLATE прапор, hInstance є дескриптор застосування або екземпляр модуля, який містить діалоговому вікні шаблон з іменем lpPrintTemplateName членом. Якщо в прапори член PD_ENABLEPRINTTEMPLATEHANDLE прапор, hInstance є дескриптор пам'яті об'єкт, що містить діалоговому вікні шаблон. Якщо жоден шаблон позначок у член прапори , hInstance повинна бути NULL.
lpPrintTemplateName
Курсор в рядок з нульовим, що імена в діалоговому вікні шаблон ресурс в модулі, визначені членами hInstance . Цей шаблон замінює діалоговому вікні шаблон за промовчанням у нижній частині сторінки, що Загальні . Стандартний шаблон містить елементи керування, схожі на ті, у діалоговому вікні " Друк ". Цей компонент ігнорується, якщо PD_ENABLEPRINTTEMPLATE прапор встановлюється в член прапори.
lpCallback
Вказівник на об'єкт визначений у застосунку зворотний виклик.

Об'єкт повинен містити IPrintDialogCallback клас для отримання повідомлень для діалогового вікна дитини в нижній частині сторінки, що Загальні.

Зворотного виклику об'єкт повинен містити в IObjectWithSite клас отримувати вказівник на інтерфейс IPrintDialogServices . Викликів функцій PrintDlgEx QueryInterface на об'єкті зворотного виклику для IID_IPrintDialogCallback і IID_IObjectWithSite для визначення інтерфейсів, які підтримуються.

Якщо ви не хочете отримати будь-який відомостей зворотного виклику, встановити lpCallback для NULL.

nPropertyPages
Визначає кількість властивостей сторінки ручки у масив lphPropertyPages.
lphPropertyPages
Містить цілий ряд властивостей сторінки ручки для додавання до аркуша властивостей друку . Додаткові властивості сторінки виконайте загальний сторінку. Використання на CreatePropertySheetPage функцію, щоб створити ці додаткові сторінки. Якщо nPropertyPages нуль, lphPropertyPages повинна бути NULL.
nStartPage
Указує сторінку властивостей, яка відображається. Щоб відобразити загальний сторінку, вказати START_PAGE_GENERAL. В іншому випадку, вкажіть COLUMN індекс сторінку властивостей в масиві, вказаного в lphPropertyPages член. Для послідовності рекомендується, що аркуш властивостей завжди можна запустити на сторінці загального.
dwResultAction
На вводу установіть цей компонент на нуль. Якщо функція PrintDlgEx повертає S_OK, dwResultAction містить підсумки діалоговому вікні. Якщо PrintDlgEx повертає помилку, цей компонент можна ігнорувати. Член dwResultAction може бути одне з таких значень.
Значення Значення
PD_RESULT_APPLY Користувач натиснув кнопку застосувати і потім натиснути кнопку Скасувати . Це означає, що користувач хоче, щоб застосувати зміни, внесені у вікні властивостей, але не потрібно надрукувати ще. PRINTDLGEX структура містить інформацію, визначених користувачем в той час була натиснута кнопка застосувати.
PD_RESULT_CANCEL Користувач натиснув кнопку Скасувати . Інформація в PRINTDLGEX структурі, без змін.
PD_RESULT_PRINT Користувач натиснув кнопку Друк . PRINTDLGEX структура містить інформацію, визначених користувачем.

Зауваження

При виклику функції PrintDlgEx , переконайтеся, що DEVNAMES структури, член wDeviceOffset ідентична dmDeviceName член на DEVMODE структури. Якщо ці учасники не той самий принтер, PrintDlgEx ініціалізує аркуша властивостей, за допомогою принтера, визначених член wDeviceOffset.

Зазвичай, якщо hDevMode і hDevNames NULL, PrintDlgEx ініціалізує аркуша властивостей, за допомогою поточного принтера за промовчанням. Однак, якщо встановити прапор PD_RETURNDEFAULT і hDevMode і hDevNames є NULL, PrintDlgEx використовує членів hDevNames і hDevMode , щоб повернути відомості про поточний принтер за замовчуванням без відображення аркуша властивостей.

Під час виконання PrintDlgExу DEVMODE і DEVNAMES структури, які ви вказали у структурі PRINTDLGEX не завжди містить поточні дані. З цієї причини сторінки конкретного застосування властивостей, а також IPrintDialogCallback процедури для початкової сторінки повинні використовувати IPrintDialogServices інтерфейс для отримання інформації про стан поточного принтера.

QuickInfo

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

Index