PRINTDLGEX

[Acest lucru este documenta?ia preliminare și subiect pentru a schimba].

Structura PRINTDLGEX conține informații care utilizează funcția PrintDlgEx pentru a inițializa de Imprimare foaia de proprietăți. După ce utilizatorul se închide foaia de proprietăți, sistemul utilizează această structură pentru a returna informații despre selecțiile utilizatorului.

typedef struct tagPDEX {}
    DWORD lStructSize;
    HWND hwndOwner;
    HGLOBAL hDevMode;
    HGLOBAL hDevNames;
    HDC hDC;
    DWORD Steaguri;
    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 

Membrii

lStructSize
Specifică dimensiunea structura, în octeți.
hwndOwner
Ocupa în fereastra care deține foaia de proprietăți. Acest membru trebuie să fie un mâner fereastra valabile; nu poate fi nul.
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 PrintDlgEx utilizează inițializa datelePentru intrare comenzilor în foaia de proprietăți. Când se întoarce PrintDlgEx , membrii mod dezvoltare indică utilizatorului intrare.

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

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 PrintDlgEx utilizează inițializa datelePentru intrare comenzilor în foaia de proprietăți. Când se întoarce PrintDlgEx , 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, PrintDlgEx 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
Ocupa 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 foaia de proprietăți de Imprimare . Când se întoarce funcția de PrintDlgEx , aceasta stabilește 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, PD_SELECTION și PD_CURRENTPAGE.
PD_COLLATE
Dacă acest flag este setată, este selectată caseta de selectare de asamblare.

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

PD_CURRENTPAGE
Dacă acest flag este setat, este selectat butonul radio Pagina curentă . Dacă nici unul dintre steagurile de PD_PAGENUMS, PD_SELECTION, sau PD_CURRENTPAGE este setat, este selectat butonul radio toate.
PD_DISABLEPRINTTOFILE
Dezactivează caseta de selectare Imprimare în fișier.
PD_ENABLEPRINTTEMPLATE
Indică faptul că membrii hInstance și lpPrintTemplateName specificați un înlocuitor pentru șablonul implicit al casetă de dialog în partea de jos a paginii generale . Șablonul implicit conține controale similare cu cele din caseta de dialog Imprimare . Sistemul utilizează șablonul specificat pentru a crea o fereastră care este un copil a paginii generale.
PD_ENABLEPRINTTEMPLATEHANDLE
Indică faptul că hInstance membre identifică un bloc de date care conține un șablon de caseta de preloaded dialog. Acest șablon înlocuiește șablon implicit de caseta de dialog în partea de jos a paginii generale . Sistemul utilizează șablonul specificat pentru a crea o fereastră care este un copil de pe pagina generale . Sistemul ignoră membru lpPrintTemplateName dacă acest flag este specificat.
PD_EXCLUSIONFLAGS
Indică faptul că ExclusionFlags membre identifică elementele care se exclud din paginile proprietate driver imprimantă. Dacă acest flag nu este setată, elemente vor fi excluse implicit din paginile proprietate driver imprimantă. Excluderi preveni repetarea elemente printre pagina generale , orice pagini specificate de cerere și paginile de driver de imprimantă.
PD_HIDEPRINTTOFILE
Ascunde caseta de selectare Imprimare în fișier.
PD_NOCURRENTPAGE
Dezactivează butonul radio Pagina curentă.
PD_NOPAGENUMS
Dezactivează butonul radio pagini și controalele de editare asociate.
PD_NOSELECTION
Dezactivează butonul radio de selecție.
PD_NOWARNING
Împiedică fiind afișate atunci când o eroare apare mesajul de avertizare.
PD_PAGENUMS
Dacă acest flag este setat, este selectat butonul radio pagini . Dacă nici unul dintre steagurile de PD_PAGENUMS, PD_SELECTION, sau PD_CURRENTPAGE este setat, este selectat butonul radio toate.

Dacă acest flag este setat atunci când funcția de PrintDlgEx , membru lpPageRanges indică pagina intervalele specificate de utilizator.

PD_PRINTTOFILE
Dacă acest flag este setată, este selectată caseta de selectare Imprimare în fișier.

Dacă acest flag este setat când PrintDlgEx se întoarce, 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 PrintDlgEx pentru a reveni un context de dispozitiv potrivire selecțiile utilizatorului în foaia de proprietăți. Contextul dispozitiv este returnat în hDC.
PD_RETURNDEFAULT
Dacă acest flag este setată, funcția PrintDlgEx nu afișați foaia de proprietăți. Î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 PrintDlgEx returnează o eroare.
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ă nici unul dintre steagurile de PD_PAGENUMS, PD_SELECTION, sau PD_CURRENTPAGE este setat, este selectat butonul radio toate.

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 PRINTDLGEX î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 PRINTDLGEX 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.


Flags2
Rezervate; trebuie să fie zero.
ExclusionFlags
Un set de steaguri de biți care poate să excludă elemente din driverul imprimantei proprietate paginile în foaia de proprietăți de Imprimare . Această valoare se utilizează numai în cazul în care pavilion PD_EXCLUSIONFLAGS este setat în membre steaguri . Excluderea steaguri trebuie utilizate numai dacă elementul excluse va fi inclusă în pagina fie generale sau pe o pagină de aplicare-definită în foaia de proprietăți de Imprimare . Acest membru poate specifica pavilion următoarele.
PD_EXCL_COPIESANDCOLLATE
Exclude controalele de copii ?i asamblare din driverul imprimantei proprietate paginile într-o foaie de proprietate de Imprimare . Acest flag întotdeauna trebuie stabilite atunci când aplicația utilizează comenzile implicit de copii ?i asamblare prevăzute de partea de jos a paginii generale din foaia de proprietăți de Imprimare.

nPageRanges
La intrare, setați acest membru la numărul inițial de pagină intervalele specificate în matrice lpPageRanges . Când se întoarce funcția de PrintDlgEx , nPageRanges indică numărul de intervale de pagină specificată de utilizator stocate în matrice lpPageRanges . Dacă este specificat de pavilion PD_NOPAGENUMS, această valoare nu este validă.
nMaxPageRanges
Specifică dimensiunea, în matrice elemente, de tampon lpPageRanges . Această valoare indică numărul maxim de zone pagină care pot fi stocate în matrice. Dacă este specificat de pavilion PD_NOPAGENUMS, această valoare nu este validă. Dacă nu este specificat pavilion PD_NOPAGENUMS, această valoare trebuie să fie mai mare decât zero.
lpPageRanges
Indicatorul pentru a o tampon care con?in o serie de structuri PRINTPAGERANGE . La intrare, matricea conține intervalele pagina inițială pentru a afișa în comanda editare pagini . Când se întoarce funcția de PrintDlgEx , matricea conține intervalele pagina specificate de utilizator.

Dacă este specificat de pavilion PD_NOPAGENUMS, această valoare nu este validă. Dacă pavilion PD_NOPAGENUMS nu este specificat, lpPageRanges trebuie să fie non-NULL.

nMinPage
Specifică valoarea minimă pentru pagina intervalele specificate în comanda editare pagini . Dacă este specificat de pavilion PD_NOPAGENUMS, această valoare nu este validă.
nMaxPage
Specifică valoarea maximă pentru pagina intervalele specificate în comanda editare pagini . Dacă este specificat de pavilion PD_NOPAGENUMS, această valoare nu este validă.
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 PrintDlgEx , nCopies conține numărul real de copii aplicarea trebuie să imprimați. 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 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 . Dacă pavilion PD_ENABLEPRINTTEMPLATEHANDLE este stabilit în membre steaguri , hInstance este ghidajul de un obiect de memorie care con?in un șablon de caseta de dialog. Dacă nici unul dintre steagurile de șablon este stabilit în membre steaguri , hInstance este NULL.
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 șablon implicit de caseta de dialog în partea de jos a paginii generale . Șablonul implicit conține controale similare cu cele din caseta de dialog Imprimare . Acest membru este ignorată dacă pavilion PD_ENABLEPRINTTEMPLATE este setat în membre steaguri.
lpCallback
Indicatorul la un obiect definit de cerere apel invers.

Obiectul trebuie să con?ină clasa IPrintDialogCallback pentru a primi mesaje pentru caseta de dialog copil în partea de jos a paginii generale.

Obiectul de apel invers trebuie să con?ină, de asemenea, IObjectWithSite clasa pentru a primi un pointer la interfața IPrintDialogServices . Apelări de funcții PrintDlgEx QueryInterface pe obiect de apel invers pentru IID_IPrintDialogCallback ?i IID_IObjectWithSite , pentru a determina care interfe?e sunt acceptate.

Dacă nu doriți să regăsiți oricare dintre informațiile de apel invers, setați lpCallback la NULL.

nPropertyPages
Specifică numărul de proprietate pagina mânere în matricea lphPropertyPages.
lphPropertyPages
Conține o serie de proprietăți pagină mânere pentru a adăuga la foaia de proprietate de Imprimare . Pagini suplimentare proprietate urmeze după pagina generale . Utilizarea CreatePropertySheetPage funcție pentru a crea aceste pagini suplimentare. În cazul în care nPropertyPages este zero, lphPropertyPages ar trebui să fie NULL.
nStartPage
Specifică pagină proprietate care este afișat inițial. Pentru a afișa pagina generale , specificați START_PAGE_GENERAL. În caz contrar, să specifice indicele de zero-based de pagină proprietate în matrice specificate în membre lphPropertyPages . Pentru coeren?ă, este recomandabil ca foaia de proprietăți întotdeauna pornit pe pagina generale.
dwResultAction
La intrare, acest membru al setului de zero. Dacă funcția de PrintDlgEx S_OK, dwResultAction conține rezultatul din caseta de dialog. Dacă PrintDlgEx returnează o eroare, acest membru ar trebui să fie ignorate. Membru dwResultAction poate fi una dintre următoarele valori.
Valoarea Sensul
PD_RESULT_APPLY Utilizatorul a făcut clic pe butonul aplicare și mai târziu ați făcut clic pe butonul Revocare . Acest lucru indică faptul că utilizatorul dorește să aplice modificările făcute în foaia de proprietăți, dar nu doriți să imprimați încă. Structura PRINTDLGEX con?ine informa?iile specificate de utilizator în momentul a fost făcut clic pe butonul aplicare.
PD_RESULT_CANCEL Utilizatorul face clic pe butonul Revocare . Informațiile din structura PRINTDLGEX este neschimbată.
PD_RESULT_PRINT Utilizatorul face clic pe butonul Imprimare . Structura PRINTDLGEX con?ine informa?iile specificate de utilizator.

Observații

Când apelați funcția PrintDlgEx , 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, PrintDlgEx inițializează foaia de proprietăți utilizând imprimanta specificată de membru wDeviceOffset.

De obicei, în cazul în care ambele hDevMode și hDevNames sunt NULL, PrintDlgEx inițializează foaia de proprietăți 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, PrintDlgEx utilizează membrii hDevNames și hDevMode pentru a returna informații despre imprimantă implicită curentă fără a afișa foaia de proprietăți.

În timpul executării PrintDlgEx, mod dezvoltare și DEVNAMES structurile specificată în structura PRINTDLGEX nu întotdeauna trebuie să conțină datele curente. Din acest motiv, cerere-specifice proprietate pagini, precum și rutine de IPrintDialogCallback pentru pagina inițială ar trebui să utilizeze interfața IPrintDialogServices pentru a prelua informații despre starea de imprimanta curent.

QuickInfo

nbsp; Windows &NT: necesită versiunea 5.0 sau o versiune ulterioară.
Windows:Neacceptat.
Windows CE:Neacceptat.
Antet:A declarat în commdlg.h.
Import Biblioteca:Utilizarea comdlg32.lib.
Unicode:Definit ca structurile Unicode și ANSI.

A se vedea, de asemenea

Common Dialog Box Library Overview, Common Dialog Box Structures, CreateDC, CreateIC, CreatePropertySheetPage, DEVMODE, DEVNAMES, IObjectWithSite, IPrintDialogCallback, IPrintDialogServices, PrintDlgEx

Index