[Це попередні документації та тема змінити].
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
Якщо hDevMode NULL на введення, PrintDlgEx виділення пам'яті для структури DEVMODE ініціалізує своїх членів для позначення користувача вводу та повертає ручкою, що ідентифікує його.
Щоб отримати додаткові відомості про hDevMode і hDevNames членів перегляньте розділ зауваження в кінці цього розділу.
Член hDevNames може бути NULL, в цьому випадку, PrintDlgEx виділення пам'яті для DEVNAMES структури, initializes внесок своїх членів, вказує користувач, і повертає на ручку, що ідентифікує його.
Щоб отримати додаткові відомості про hDevMode і hDevNames членів перегляньте розділ зауваження в кінці цього розділу.
| 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 завжди нуль. |
|
| PD_EXCL_COPIESANDCOLLATE | |
| Виключає копій і розібрати за копіями контролю від сторінки властивостей драйвер принтера у аркуша властивостей друку . Цей прапор завжди повинен бути встановлений, коли застосунок використовує за замовчуванням копій і розібрати за копіями елементи надаються нижньої частину загальних сторінки друку аркуша. | |
Якщо вказано PD_NOPAGENUMS прапор, це значення неприпустиме. Якщо не вказано PD_NOPAGENUMS прапор, lpPageRanges повинна бути не NULL.
Коли PrintDlgEx повертається, nCopies містить фактична кількість копій, які програми потрібно друкувати. Це значення залежить від того, чи програму або драйвер принтера несе відповідальність за Друк декількох копій. Якщо в прапори член PD_USEDEVMODECOPIESANDCOLLATE прапор, nCopies завжди 1 на повернення, і драйвер принтера несе відповідальність за Друк декількох копій. Якщо не встановлено позначку, застосування несе відповідальність за друку кількість копій, що визначений nCopies. Докладніше перегляньте опис прапор PD_USEDEVMODECOPIESANDCOLLATE.
Об'єкт повинен містити IPrintDialogCallback клас для отримання повідомлень для діалогового вікна дитини в нижній частині сторінки, що Загальні.
Зворотного виклику об'єкт повинен містити в IObjectWithSite клас отримувати вказівник на інтерфейс IPrintDialogServices . Викликів функцій PrintDlgEx QueryInterface на об'єкті зворотного виклику для IID_IPrintDialogCallback і IID_IObjectWithSite для визначення інтерфейсів, які підтримуються.
Якщо ви не хочете отримати будь-який відомостей зворотного виклику, встановити lpCallback для NULL.
| Значення | Значення |
|---|---|
| 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 інтерфейс для отримання інформації про стан поточного принтера.
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