PRINTDLG

Structura PRINTDLG conține informații care utilizează funcția PrintDlg pentru a inițializa de caseta de dialog tipărire . După ce utilizatorul se închide caseta de dialog, sistemul utilizează această structură pentru a returna informații despre selecțiile utilizatorului.

typedef struct tagPD {/ / pd DWORD lStructSize; 
    HWND hwndOwner; 
    MÂNER hDevMode; 
    MÂNER hDevNames; 
    HDC hDC; 
    DWORD Steaguri; 
    WORD nFromPage; 
    WORD nToPage; 
    WORD nMinPage; 
    WORD nMaxPage; 
    WORD nCopies; 
    HINSTANCE hInstance; 
    DWORD lCustData; 
    LPPRINTHOOKPROC lpfnPrintHook; 
    LPSETUPHOOKPROC lpfnSetupHook; 
    LPCTSTR lpPrintTemplateName; 
    LPCTSTR lpSetupTemplateName; 
    MÂNER hPrintTemplate; 
    MÂNER hSetupTemplate; 
} PRINTDLG 

 

Membrii

lStructSize
Specifică dimensiunea structura, în octeți.
hwndOwner
Identifică fereastra care deține caseta de dialog. Acest membru poate fi orice fereastră valabil mâner, sau poate fi nul în cazul în care caseta de dialog a nu proprietar.
hDevMode
Mâner pentru un obiect de memorie global mobile care conține o mod dezvoltare structura. Dacă hDevMode nu este NULL la intrare, trebuie să aloce un bloc mobile de memorie pentru structura mod dezvoltare și inițializa membrii săi. Funcția de PrintDlg utilizează inițializa datelePentru intrare controalele din caseta de dialog. Când se întoarce PrintDlg , membrii mod dezvoltare indică utilizatorului intrare.

În cazul în care hDevMode este NULL la intrare, PrintDlg alocă memorie pentru structura mod dezvoltare , inițializează membrii săi pentru a indica utilizatorului intrare și returnează un mâner care îl identifică.

Dacă driverul de dispozitiv pentru imprimanta specificată nu acceptă modurile dispozitiv extinsă, hDevMode este NULL când PrintDlg întoarce.

Dacă numele dispozitivului (specificate de membru dmDeviceName mod dezvoltare structura) nu apare în secțiunea [devices] de a câștiga.INI, PrintDlg returnează o eroare.

Pentru mai multe informații despre membrii hDevMode ?i hDevNames , vezi secțiunea observații de la sfârșitul acestui subiect.

hDevNames
Mâner pentru un obiect de memorie global mobile care conține o structură DEVNAMES . Dacă hDevNames nu este NULL la intrare, trebuie să aloce un bloc mobile de memorie pentru structura DEVNAMES și să inițializa membrii săi. Funcția de PrintDlg utilizează inițializa datelePentru intrare controalele din caseta de dialog. Când se întoarce PrintDlg , membrii DEVNAMES conține informații pentru imprimanta alese de utilizator. Utilizați aceste informații pentru a crea un context de dispozitiv sau un context de informații.

Membru hDevNames poate fi NULL, caz în care, PrintDlg alocă memorie pentru structura DEVNAMES , initializes membrii săi pentru a indica utilizatorului de intrare, și îl returnează un mâner care identifică.

Pentru mai multe informații despre membrii hDevMode ?i hDevNames , vezi secțiunea observații de la sfârșitul acestui subiect.

hDC
Identifică un context de dispozitiv sau un context de informații, în funcție de dacă membrul steaguri specifică pavilion PD_RETURNDC sau PC_RETURNIC. Dacă nu este specificat nici pavilion, valoarea de acest membru este nedefinit. Dacă ambele steaguri sunt specificate, PD_RETURNDC are prioritate.
Steaguri
Un set de steaguri de biți care le puteți utiliza pentru a inițializa caseta de dialog comune de Imprimare . Când se întoarce în caseta de dialog, se setează aceste semnalizări pentru a indica utilizatorului intrare. Acest membru pot fi o combinatie dintre steagurile de următoarele:
PD_ALLPAGES
Drapelul implicit care indică faptul că butonul radio toate ini?ial este selectată. Acest flag este utilizat ca un substituent pentru a indica faptul că nu sunt specificate steagurile PD_PAGENUMS ?i PD_SELECTION.
PD_COLLATE
Dacă acest flag este setată, este selectată caseta de selectare de asamblare.

Dacă acest flag este setat când funcția PrintDlg , cererea trebuie să simuleze collation de mai multe copii. Pentru mai multe informații, vezi descrierea pavilion PD_USEDEVMODECOPIESANDCOLLATE.

PD_DISABLEPRINTTOFILE
Dezactivează caseta de selectare Imprimare în fișier.
PD_ENABLEPRINTHOOK
Permite cârlig procedura specificată în membre lpfnPrintHook . Acest lucru permite procedura cârlig pentru caseta de dialog Imprimare.
PD_ENABLEPRINTTEMPLATE
Indică faptul că membrii hInstance și lpPrintTemplateName specificați un înlocuitor pentru șablonul implicit al caseta de dialog Imprimare.
PD_ENABLEPRINTTEMPLATEHANDLE
Indică faptul că hPrintTemplate membre identifică un bloc de date care conține un șablon de caseta de preloaded dialog. Acest șablon înlocuiește șablonul implicit pentru caseta de dialog Imprimare . Sistemul ignoră membru lpPrintTemplateName dacă acest flag este specificat.
PD_ENABLESETUPHOOK
Permite cârlig procedura specificată în membre lpfnSetupHook . Acest lucru permite procedura cârlig pentru caseta de dialog Configurare tipărire.
PD_ENABLESETUPTEMPLATE
Indică faptul că membrii hInstance și lpSetupTemplateName specificați un înlocuitor pentru șablonul implicit al caseta de dialog configurare .
PD_ENABLESETUPTEMPLATEHANDLE
Indică faptul că hSetupTemplate membre identifică un bloc de date care conține un șablon de caseta de preloaded dialog. Acest șablon înlocuiește șablonul implicit pentru caseta de dialog Configurare tipărire . Sistemul ignoră membru lpSetupTemplateName dacă acest flag este specificat.
PD_HIDEPRINTTOFILE
Ascunde caseta de selectare Imprimare în fișier.
PD_NONETWORKBUTTON
Ascunde și dezactivează butonul rețea.
PD_NOPAGENUMS
Dezactivează butonul radio pagini și controalele de editare asociate.
PD_NOSELECTION
Dezactivează butonul radio de selecție.
PD_NOWARNING
Împiedică afișarea atunci când nu există nici o imprimantă implicită mesajul de avertizare.
PD_PAGENUMS
Dacă acest flag este setat, este selectat butonul radio pagini.

Dacă acest flag este setat atunci când funcția de PrintDlg , nFromPage și nFromPage membri indică început și de sfârșit pagini specificate de utilizator.

PD_PRINTSETUP
Cauzele sistemul pentru a afișa caseta de dialog Configurare tipărire , mai degrabă decât caseta de dialog Imprimare.
PD_PRINTTOFILE
Dacă acest flag este setată, este selectată caseta de selectare Imprimare în fișier.

Dacă acest flag este setat când funcția PrintDlg , decalajul indicată de statul membru de wOutputOffset din structura DEVNAMES conține șirul "FIȘIER:". Când apelați StartDoc funcție pentru a începe opera?ia de tipărire, specificați acest lucru "FIȘIER:" șir membru lpszOutput de DOCINFO structura. Specificarea acest șir provoacă subsistemul de imprimare interogarea utilizatorului pentru numele de fișierul de ieșire.

PD_RETURNDC
Cauzele PrintDlg pentru a reveni un context de dispozitiv potrivire selecțiile utilizatorului în caseta de dialog. Contextul dispozitiv este returnat în hDC.
PD_RETURNDEFAULT
Dacă acest flag este setată, funcția PrintDlg nu se afișează caseta de dialog. În schimb, stabilește membrii hDevNames și hDevMode la ghidaje pentru structurile mod dezvoltare și DEVNAMES care sunt inițializate pentru imprimantă implicită sistem. Ambele hDevNames și hDevMode trebuie să fie nul, sau PrintDlg returnează o eroare.

Dacă imprimanta implicită sistem este susținută de un vechi driver de imprimantă (mai devreme ferestre traducere 3.0), este întors doar hDevNames ; hDevMode este NULL.

PD_RETURNIC
Similar cu drapelul PD_RETURNDC, cu excepția acest flag întoarce un context de informații, mai degrabă decât un context de dispozitiv. Dacă nu este specificat nici PD_RETURNDC, nici PD_RETURNIC, hDC este nedefinit pe ieșire.
PD_SELECTION
Dacă acest flag este setat, este selectat butonul radio de selecție.

Dacă este setat nici PD_PAGENUMS, nici PD_SELECTION, este selectat butonul radio toate.

PD_SHOWHELP
Cauzele caseta de dialog pentru a afișa butonul Ajutor . Membru hwndOwner trebuie să specificați fereastra pentru a primi HELPMSGSTRING înregistrat mesaje care caseta de dialog trimite atunci când utilizatorul face clic pe butonul Ajutor.
PD_USEDEVMODECOPIES
Acela?i ca PD_USEDEVMODECOPIESANDCOLLATE
PD_USEDEVMODECOPIESANDCOLLATE
Acest flag indică dacă aplicația acceptă mai multe copii ?i asamblare. Setați acest flag pe intrare pentru a indica faptul că aplicația nu acceptă mai multe copii ?i asamblare. În acest caz, membrul nCopies structura PRINTDLG întoarce întotdeauna 1, și PD_COLLATE nu este setată în membre steaguri.

Dacă acest flag nu este setată, cererea este responsabil pentru imprimarea ?i compilarea mai multe copii. În acest caz, membrul nCopies structura PRINTDLG indică numărul de copii care utilizatorul dorește să imprimați și pavilion PD_COLLATE membru steaguri indică dacă utilizatorul dorește asamblare.

Indiferent dacă acest flag este setat, cererea poate determina, la nCopies și PD_COLLATE câte copii pentru a face și dacă să le imprimați comparate.

Dacă acest flag este stabilit și driverul de imprimantă nu acceptă mai multe copii, copii Editare controlul este dezactivat. În mod similar, dacă acest flag este stabilit și driverul de imprimantă nu acceptă asamblare, caseta de selectare de asamblare este dezactivat.

Membrii dmCopies și dmCollate mod dezvoltare structura conține copii și adună informa?ii utilizate de driverul de imprimantă. Dacă acest flag este stabilit și driverul de imprimantă acceptă mai multe copii, membru dmCopies indică numărul de exemplare solicitat de către utilizator. Dacă acest flag este stabilit și driverul de imprimantă acceptă asamblare, membru dmCollate din structura mod dezvoltare indică dacă utilizatorul dorește asamblare. Dacă acest flag nu este setată, membru dmCopies întoarce întotdeauna 1, și dmCollate este întotdeauna zero.


nFromPage
Specifică valoarea inițială pentru controlul de Editare pagină pornire.

Atunci când PrintDlg întoarce, nFromPage este pagina de început specificată de utilizator. Dacă este selectat butonul radio de pagini , atunci când utilizatorul face clic pe butonul OK , seturi de PrintDlg PD_PAGENUMS de pavilion și nu întoarce până la utilizatorul introduce o valoare pagină pornire, care este în termen minim la interval de pagini maximă.

Windows 95: Dacă valoarea de intrare pentru nFromPage sau nToPage este în afara domeniului specificat de nMinPage și nMaxPage, PrintDlg returnează o eroare.

Windows NT: Dacă intrarea valoare pentru nFromPage sau nToPage este în afara intervalului minim/maxim, PrintDlg returnează o eroare numai dacă este specificat pavilion PD_PAGENUMS; în caz contrar, se afișează caseta de dialog dar modifică valoarea afară-de-gama de la valoarea minimă sau maximă.

nToPage
Specifică valoarea inițială pentru controlul sfârșit de Editare pagină.

Atunci când se întoarce de PrintDlg , nToPage este pagina de sfârșit specificată de utilizator. Dacă este selectat butonul radio pagini , atunci când utilizarea pocnitură bine nasture, seturi de PrintDlg PD_PAGENUMS de pavilion și nu întoarce până la utilizatorul introduce o valoare sfârșit pagină, care este în termen minim la interval de pagini maximă.

nMinPage
Specifică valoarea minimă pentru zona de pagină specificată în pagina Editare controale de și . În cazul în care nMinPage este egal cu nMaxPage, butonul radio de pagini și de început și de sfârșit controale de Editare pagină sunt dezactivate.
nMaxPage
Specifică valoarea maximă pentru zona de pagină specificată în pagina Editare controale de și.
nCopies
Conține numărul inițial de copii pentru comanda editare copii dacă hDevMode este NULL; în caz contrar, membru dmCopies mod dezvoltare structura conține valoarea inițială. Atunci când se întoarce de PrintDlg , nCopies conține numărul real de copii pentru a imprima. Această valoare depinde dacă cererea sau driverul de imprimantă este responsabil pentru tipărirea mai multor copii. Dacă pavilion PD_USEDEVMODECOPIESANDCOLLATE este setat în membre steaguri , nCopies este întotdeauna 1 la întoarcerea și driverul de imprimantă este responsabil pentru tipărirea mai multor copii. Dacă drapelul nu este setată, cererea este responsabil pentru imprimarea un număr de copii stabilit de nCopies. Pentru mai multe informații, vezi descrierea pavilion PD_USEDEVMODECOPIESANDCOLLATE.
hInstance
Dacă pavilion PD_ENABLEPRINTTEMPLATE sau PD_ENABLESETUPTEMPLATE este stabilit în membre steaguri , hInstance este ghidajul cererii sau instanta modulului care conține șablonul de caseta de dialog numit de statul membru de lpPrintTemplateName sau lpSetupTemplateName.
lCustData
Specifică date definite de aplicarea că sistemul trece la procedura cârlig identificate de către lpfnPrintHook sau lpfnSetupHook . Atunci când sistemul trimite mesajul WM_INITDIALOG procedura cârlig, mesajul lui lParam parametru este un indicator de structura PRINTDLG specificat când dialogul a fost creat. Procedura cârlig poate utiliza acest indicator pentru a obține valoarea lCustData.
lpfnPrintHook
Indicatorul pentru a o PrintHookProc cârlig procedura care poate procesa mesaje destinate pentru caseta de dialog Imprimare . Acest membru este ignorată dacă pavilion PD_ENABLEPRINTHOOK este setat în membre steaguri.
lpfnSetupHook
Indicatorul pentru a o SetupHookProc cârlig procedura care poate procesa mesaje destinate pentru caseta de dialog Configurare tipărire . Acest membru este ignorată dacă pavilion PD_ENABLESETUPHOOK este setat în membre steaguri.
lpPrintTemplateName
Indicatorul un șir null-terminated care nume de caseta de dialog șablon resursă în modulul identificate de către hInstance . Acest șablon înlocuiește șablonul implicit al caseta de dialog Imprimare . Acest membru este ignorată dacă pavilion PD_ENABLEPRINTTEMPLATE este setat în membre steaguri.
lpSetupTemplateName
Indicatorul un șir null-terminated care nume de caseta de dialog șablon resursă în modulul identificate de către hInstance . Acest șablon înlocuiește șablonul implicit al caseta de dialog Configurare tipărire . Acest membru este ignorată dacă pavilion PD_ENABLESETUPTEMPLATE este setat în membre steaguri.
hPrintTemplate
Dacă pavilion PD_ENABLEPRINTTEMPLATEHANDLE este stabilit în membre steaguri , hPrintTemplate este ghidajul de un obiect de memorie care con?in un șablon de caseta de dialog. Acest șablon înlocuiește șablonul implicit al caseta de dialog Imprimare.
hSetupTemplate
Dacă pavilion PD_ENABLESETUPTEMPLATEHANDLE este stabilit în membre steaguri , hSetupTemplate este ghidajul de un obiect de memorie care con?in un șablon de caseta de dialog. Acest șablon înlocuiește șablonul implicit al caseta de dialog Configurare tipărire.

Observații

Când apelați funcția PrintDlg , fi sigur că membrul wDeviceOffset structura DEVNAMES este identic cu membrul dmDeviceName mod dezvoltare structura. În cazul în care acești membri nu specificați aceleași imprimanta, PrintDlg inițializează caseta de dialog utilizând imprimanta specificată de membru wDeviceOffset.

De obicei, în cazul în care ambele hDevMode și hDevNames sunt NULL, PrintDlg inițializează caseta de dialog utilizând imprimanta implicită curentă. Cu toate acestea, în cazul în care pavilion PD_RETURNDEFAULT este stabilit și atât hDevMode , cât și hDevNames sunt NULL, PrintDlg utilizează membrii hDevNames și hDevMode pentru a returna informații despre imprimantă implicită curentă fără a afișa caseta de dialog.

QuickInfo

nbsp; Windows &NT: necesită versiunea 3.1 sau mai târziu.
Windows:Necesită Windows 95 sau o versiune ulterioară.
Windows CE:Necesită versiunea 1.0 sau mai târziu.
Antet:A declarat în winspool.h.
Unicode:Definit ca structurile Unicode și ANSI.

A se vedea, de asemenea

Comune Dialog casetă de prezentare biblioteca, structuri comune de caseta de Dialog, CreateDC, CreateIC, PrintDlg, mod dezvoltare, DEVNAMES, WM_INITDIALOG

Index