PRINTDLG

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

typedef tagPD типу struct {/ / pd DWORD lStructSize; 
    HWND hwndOwner; 
    Ручка hDevMode; 
    Ручка hDevNames; 
    HDC hDC; 
    DWORD Прапори; 
    СЛОВО nFromPage; 
    СЛОВО nToPage; 
    СЛОВО nMinPage; 
    СЛОВО nMaxPage; 
    СЛОВО nCopies; 
    HINSTANCE hInstance; 
    DWORD lCustData; 
    LPPRINTHOOKPROC lpfnPrintHook; 
    LPSETUPHOOKPROC lpfnSetupHook; 
    LPCTSTR lpPrintTemplateName; 
    LPCTSTR lpSetupTemplateName; 
    Ручка hPrintTemplate; 
    Ручка hSetupTemplate; 
} PRINTDLG 

 

Члени

lStructSize
Визначає розмір структури в байт.
hwndOwner
Визначає, що володіє діалогового вікна. Цей компонент може бути будь-яку ручку дійсний вікно, або це може бути значення NULL, якщо діалогове вікно не власник.
hDevMode
Обробляти рухомого глобальної пам'яті об'єкт, що містить на DEVMODE структури. Якщо hDevMode не NULL на вводу, потрібно виділити рухомому блоці пам'яті для DEVMODE структури та ініціалізувати його членів. Функція PrintDlg використовує ініціалізації вхідних datato елементи керування в діалоговому вікні. Коли PrintDlg повертається, члени DEVMODE вказати користувача вводу.

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

Якщо драйвер для вказаного принтера не підтримує розширені пристрій режими, hDevMode є NULL, коли PrintDlg повертається.

Якщо ім'я пристрою (визначені dmDeviceName член на DEVMODE структури) не відображається в розділі [devices] ПЕРЕМОГУ.INI, PrintDlg повертає помилку.

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

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

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

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

hDC
Визначає пристрій контекст або контекст інформації, залежно від того, чи прапори член визначає прапор PD_RETURNDC або PC_RETURNIC. Якщо вказано ні прапор, значення цей компонент є невизначеною. Якщо вказані обидва прапори, PD_RETURNDC має пріоритет.
Прапори
Набір біт прапори, які можна використовувати для ініціалізації Загальні діалогового вікна Друк . Коли діалогове вікно повертається, він встановлює ці прапори вказати користувача вводу. Цей компонент може бути поєднання таких прапори:
PD_ALLPAGES
Позначки за замовчуванням, яка вказує на те, що всі перемикач вибрано спочатку. Цей прапор використовується як заповнювач для позначення, що прапори PD_PAGENUMS і PD_SELECTION не вказано.
PD_COLLATE
Якщо цей прапор, установлено прапорець розібрати за копіями.

Якщо цей прапор коли функція PrintDlg повертає, додаток повинні імітувати копіями декілька копій. Докладніше перегляньте опис прапор PD_USEDEVMODECOPIESANDCOLLATE.

PD_DISABLEPRINTTOFILE
Вимикає прапорець Друк до файлу.
PD_ENABLEPRINTHOOK
Дозволяє гачок передбаченому членів lpfnPrintHook . Це дозволяє гачок порядок "у діалоговому вікні" Друк ".
PD_ENABLEPRINTTEMPLATE
Вказує на те, що hInstance і lpPrintTemplateName члени вказати заміна за замовчуванням Друк діалоговому вікні шаблон.
PD_ENABLEPRINTTEMPLATEHANDLE
Вказує на те, що hPrintTemplate член ідентифікує блок даних, яка містить попередньо діалоговому вікні шаблон. Цей шаблон замінює стандартний шаблон "у діалоговому вікні" Друк ". Система ігнорує член lpPrintTemplateName , якщо цей прапор.
PD_ENABLESETUPHOOK
Дозволяє гачок передбаченому членів lpfnSetupHook . Це дозволяє гачок порядок "у діалоговому вікні" Параметри друку ".
PD_ENABLESETUPTEMPLATE
Вказує на те, що hInstance і lpSetupTemplateName члени вказати заміна шаблон за промовчаннямПараметри друкудіалоговому вікні .
PD_ENABLESETUPTEMPLATEHANDLE
Вказує на те, що hSetupTemplate член ідентифікує блок даних, яка містить попередньо діалоговому вікні шаблон. Цей шаблон замінює стандартний шаблон "у діалоговому вікні" Параметри друку ". Система ігнорує член lpSetupTemplateName , якщо цей прапор.
PD_HIDEPRINTTOFILE
Приховання прапорець Друк до файлу.
PD_NONETWORKBUTTON
Приховання і деактивує кнопку мережі.
PD_NOPAGENUMS
Вимкнення радіо-кнопки сторінок і пов'язані елементах керування.
PD_NOSELECTION
Вимкнення радіо виділення ".
PD_NOWARNING
Запобігає попередження відображаються, коли не принтер за промовчанням.
PD_PAGENUMS
Якщо цей прапор, вибрано перемикач сторінок.

Якщо цей прапор коли функція PrintDlg повертає, nFromPage і nFromPage члени вказати починаючи і закінчуючи сторінок, визначених користувачем.

PD_PRINTSETUP
Причини системи для відображення діалогового вікна Параметри друку , а не "у діалоговому вікні" Друк ".
PD_PRINTTOFILE
Якщо цей прапор, установлено прапорець Друк до файлу.

Якщо цей прапор коли функція PrintDlg повертає, зсув позначається wOutputOffset член DEVNAMES структура містить рядок "ФАЙЛУ:". При виклику на StartDoc функцію, щоб почати операцію друку, укажіть це "ФАЙЛУ:" рядок в lpszOutput член на DOCINFO структури. Зазначення цей рядок викликає підсистема друку для запиту користувача на ім'я вихідного файлу.

PD_RETURNDC
Причини PrintDlg повернути пристрій контекст, зіставлення вибраних користувача в діалоговому вікні. Пристрій контексті повертається в hDC.
PD_RETURNDEFAULT
Якщо цей прапор, PrintDlg функція не відображає діалогове вікно. Замість цього, встановлює hDevNames і hDevMode члени ручки до DEVMODE і DEVNAMES структури, які є ініціалізовано для системи принтер за промовчанням. HDevNames і hDevMode повинні бути NULL або PrintDlg повертає помилку.

Якщо принтер за замовчуванням система підтримується на старий драйвер принтера (раніше, ніж Windows версії 3.0), повертаються лише hDevNames ; hDevMode є NULL.

PD_RETURNIC
Подібний до прапору PD_RETURNDC, за винятком цей прапор повертає контекст інформацію, а не контекст пристрою. Якщо вказано ні PD_RETURNDC, ні PD_RETURNIC, hDC невизначені на вихід.
PD_SELECTION
Якщо цей прапор, вибрано перемикач виділення.

Якщо ні PD_PAGENUMS, ні PD_SELECTION, всі перемикач вибрано.

PD_SHOWHELP
Викликає діалогове вікно відображення кнопки допомогти . Член hwndOwner слід указати вікна, щоб отримувати HELPMSGSTRING зареєстрованих повідомлень, що діалогове вікно надсилання, коли користувач натискає кнопку Довідка.
PD_USEDEVMODECOPIES
Так само, як PD_USEDEVMODECOPIESANDCOLLATE
PD_USEDEVMODECOPIESANDCOLLATE
Цей прапор вказує, чи вашого застосування підтримує декілька копій і сортування. Установити цей прапор вводу, щоб вказати, що ваша заявка не підтримує декілька копій і сортування. У цьому випадку, член nCopies PRINTDLG структури завжди повертає значення 1, і PD_COLLATE ніколи не ставили в прапори член.

Якщо не встановлено цю позначку, застосування несе відповідальність за друку та систематизації декілька копій. У цьому випадку, член nCopies PRINTDLG структури вказує кількість копій, які користувач хоче, щоб надрукувати, і член прапори , прапор PD_COLLATE вказує на те, чи користувач хоче копіями.

Незалежно від того, чи установлено цей прапор застосунку можна визначити з nCopies і PD_COLLATE, кількість копій для візуалізації, і чи потрібно надрукувати їх взяті.

Якщо установлено цей прапор і драйвер принтера не підтримує декілька копій, копії редагування вимкнуто. Аналогічним чином, якщо встановити цей прапор і драйвер принтера не підтримує копіями, прапорець розібрати за копіями вимкнуто.

DmCopies і dmCollate членів у DEVMODE структура містить копії та співставлення інформації, що використовується драйвер принтера. Якщо встановити цей прапор і драйвер принтера підтримує декілька копій, член dmCopies вказує кількість копій, вказані користувачем. Якщо установлено цей прапор і драйвер принтера підтримує копіями, dmCollate член DEVMODE структури вказує, чи користувач хоче копіями. Якщо не встановлено цю позначку, член dmCopies завжди повертає значення 1, і член dmCollate завжди нуль.


nFromPage
Визначає початкове значення для початкової сторінки редагування контролю.

Коли PrintDlg повертається, nFromPage є початкову сторінку, визначених користувачем. Якщо вибрано сторінки "радіо, коли користувач натискає кнопку добре , PrintDlg множин в PD_PAGENUMS прапор і не повернутися до користувач вводить початкове значення сторінки, що знаходиться в межах мінімальна максимум сторінки діапазону.

Windows 95: Якщо вхідні значення або nFromPage , або nToPage за межами діапазону, зазначеного nMinPage і nMaxPage, PrintDlg повертає помилку.

Windows NT: Якщо вхідні значення або nFromPage , або nToPage знаходиться поза мінімум/максимум діапазоні, PrintDlg повертає помилку тільки, якщо вказано прапор PD_PAGENUMS; в іншому випадку відображається діалогове вікно, але змінює значення з діапазону до мінімального або максимального значення.

nToPage
Визначає початкове значення для кінцевої сторінки редагування елемента керування.

Коли PrintDlg повертається, nToPage є кінцевої сторінки, визначених користувачем. Якщо вибрано перемикач сторінки , під час використання натискання кнопки ОК , PrintDlg множин в PD_PAGENUMS прапор і не повернутися до користувач вводить кінцевої сторінки значення, яке протягом мінімум до максимум сторінки діапазону.

nMinPage
Визначає мінімальне значення для сторінки діапазону, зазначеного в від і до сторінки елементах керування. Якщо nMinPage дорівнює nMaxPage, радіо-кнопки сторінок і починаючи і закінчуючи сторінки елементах керування вимкнуті.
nMaxPage
Визначає максимальне значення для діапазону сторінок, вказаного в від і до сторінки елементах керування.
nCopies
Містить початковий номер копії елемента керування edit копії , якщо hDevMode має значення NULL; в іншому випадку, член dmCopies на DEVMODE структура містить початкове значення. Коли PrintDlg повертається, nCopies містить фактична кількість копій для друку. Це значення залежить від того, чи програму або драйвер принтера несе відповідальність за Друк декількох копій. Якщо в прапори член PD_USEDEVMODECOPIESANDCOLLATE прапор, nCopies завжди 1 на повернення, і драйвер принтера несе відповідальність за Друк декількох копій. Якщо не встановлено позначку, застосування несе відповідальність за друку кількість копій, що визначений nCopies. Докладніше перегляньте опис прапор PD_USEDEVMODECOPIESANDCOLLATE.
hInstance
Якщо член прапори , у PD_ENABLEPRINTTEMPLATE або PD_ENABLESETUPTEMPLATE прапор, hInstance є дескриптор застосування або екземпляр модуля, який містить діалоговому вікні шаблон з іменем lpPrintTemplateName або lpSetupTemplateName членом.
lCustData
Визначає визначений у застосунку дані, що система проходить процедура гачок, визначені член lpfnPrintHook або lpfnSetupHook . Коли система надсилає повідомлення WM_INITDIALOG процедуру гачок, повідомлення lParam параметр є вказівник на структуру PRINTDLG вказано, коли діалогове вікно було створено. Гачок процедуру можна використовувати вказівник для отримання значення lCustData.
lpfnPrintHook
Вказівник до PrintHookProc гачок процедура, що може обробляти повідомлення, надіслані "у діалоговому вікні" Друк ". Цей компонент ігнорується, якщо PD_ENABLEPRINTHOOK прапор встановлюється в член прапори.
lpfnSetupHook
Вказівник до SetupHookProc гачок процедура, що може обробляти повідомлення, надіслані "у діалоговому вікні" Параметри друку ". Цей компонент ігнорується, якщо PD_ENABLESETUPHOOK прапор встановлюється в член прапори.
lpPrintTemplateName
Курсор в рядок з нульовим, що імена в діалоговому вікні шаблон ресурс в модулі, визначені членами hInstance . Цей шаблон замінює за замовчуванням Друк діалоговому вікні шаблон. Цей компонент ігнорується, якщо PD_ENABLEPRINTTEMPLATE прапор встановлюється в член прапори.
lpSetupTemplateName
Курсор в рядок з нульовим, що імена в діалоговому вікні шаблон ресурс в модулі, визначені членами hInstance . Цей шаблон замінює шаблон діалоговому вікні Параметри друку за промовчанням. Цей компонент ігнорується, якщо PD_ENABLESETUPTEMPLATE прапор встановлюється в член прапори.
hPrintTemplate
Якщо в прапори член PD_ENABLEPRINTTEMPLATEHANDLE прапор, hPrintTemplate є дескриптор пам'яті об'єкт, що містить діалоговому вікні шаблон. Цей шаблон замінює за замовчуванням Друк діалоговому вікні шаблон.
hSetupTemplate
Якщо в прапори член PD_ENABLESETUPTEMPLATEHANDLE прапор, hSetupTemplate є дескриптор пам'яті об'єкт, що містить діалоговому вікні шаблон. Цей шаблон замінює шаблон діалоговому вікні Параметри друку за промовчанням.

Зауваження

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

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

QuickInfo

nbsp; Windows &NT: вимагає 3.1 або пізнішої версії.
Windows:Вимагає Windows 95 або пізнішої версії.
Windows CE:Потрібна Версія 1.0 або пізнішу версію.
Заголовка:Оголошена в winspool.h.
Юнікод:Визначено як Unicode та ANSI структури.

Дивіться також

Загальний огляд бібліотеки діалогового вікна, Спільні діалоговому вікні структури, CreateDC, CreateIC, PrintDlg, DEVMODE, DEVNAMES, WM_INITDIALOG

Index