PRINTDLGEX

[Dette er foreløpige dokumentasjonen og endring.]

PRINTDLGEX -strukturen inneholder informasjon som PrintDlgEx -funksjonen til å initialisere egenskapsarket Skriv ut . Når brukeren lukker egenskapsarket, bruker systemet denne strukturen vil returnere informasjon om brukerens valg.

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

Medlemmer

lStructSize
Angir strukturen størrelsen, i byte.
hwndOwner
Håndtere til vinduet som eier egenskapsarket. Dette medlemmet må være en gyldig vindusreferanse; Det kan ikke være NULL.
hDevMode
Håndtere til et bevegelig globale minne-objekt som inneholder en strukturen DEVMODE . Hvis hDevMode ikke er NULL på innspill, må du tildele en bevegelig blokk med minne for den definerte strukturen DEVMODE og initialisere sine medlemmer. PrintDlgEx -funksjonen bruker input datato initialiseringen kontrollene i egenskapsarket. Når PrintDlgEx kommer tilbake, angi DEVMODE -medlemmer brukerens inndata.

Hvis hDevMode er NULL på innspill, PrintDlgEx tildeler minne for den definerte strukturen DEVMODE , initialiserer sine medlemmer å angi brukerens inndata, og returnerer et håndtak som identifiserer det.

Hvis du vil ha mer informasjon om hDevMode og hDevNames -medlemmer, kan du se delen Merknader på slutten av dette emnet.

hDevNames
Håndtere til et bevegelig globale minne-objekt som inneholder en DEVNAMES struktur. Hvis hDevNames ikke er NULL på innspill, må du tildele en bevegelig blokk med minne for DEVNAMES strukturen og initialisere sine medlemmer. PrintDlgEx -funksjonen bruker input datato initialiseringen kontrollene i egenskapsarket. Når PrintDlgEx kommer tilbake, inneholder DEVNAMES medlemmene informasjon for skriveren som er valgt av brukeren. Du kan bruke denne informasjonen til å opprette en enhetskontekst eller en informasjon-kontekst.

HDevNames -medlem kan være NULL, i så fall, PrintDlgEx tildeler minne for DEVNAMES strukturen, initializes som sine medlemmer å angi brukeren er inndata, og returnerer en håndtak som identifiserer det.

Hvis du vil ha mer informasjon om hDevMode og hDevNames -medlemmer, kan du se delen Merknader på slutten av dette emnet.

hDC
Håndtere en enhetskontekst eller en informasjon-kontekst, avhengig av om medlemmet flagg angir flagget PD_RETURNDC eller PC_RETURNIC. Hvis verken flagget er angitt, er verdien for dette medlemmet er ikke definert. Hvis begge flagg er angitt, har PD_RETURNDC prioritet.
Flagg
Et sett med Bitflagg som du kan bruke til å initialisere egenskapsarket Skriv ut . Når funksjonen PrintDlgEx returnerer, setter det disse flaggene for å angi brukerens inndata. Dette medlemmet kan være en kombinasjon av følgende flagg.
PD_ALLPAGES
Standardflagg som angir at alle alternativknappen velges først. Dette flagget brukes som en plassholder for å indikere at flaggene PD_PAGENUMS, PD_SELECTION og PD_CURRENTPAGE ikke er angitt.
PD_COLLATE
Hvis dette flagget er angitt, er merket av for avmerkingsboksen Kollater.

Hvis dette flagget er angitt når funksjonen PrintDlgEx returnerer, må programmet simulere måltidet av flere kopier. Hvis du vil ha mer informasjon, kan du se beskrivelsen av PD_USEDEVMODECOPIESANDCOLLATE-flagg.

PD_CURRENTPAGE
Hvis dette flagget er angitt, velges Gjeldende side alternativknappen. Hvis ingen av flaggene PD_PAGENUMS, PD_SELECTION eller PD_CURRENTPAGE er angitt, er alle alternativknappen valgt.
PD_DISABLEPRINTTOFILE
Deaktiverer avmerkingsboksen Skriv til fil.
PD_ENABLEPRINTTEMPLATE
Angir at hInstance og lpPrintTemplateName -medlemmer angir en erstatning for standardmalen for dialogboksen-boksen i den nederste delen av siden Generelt . Standardmalen inneholder kontroller som ligner innrykkene for dialogboksen Skriv ut . Systemet bruker den oppgitte malen til å opprette et vindu som er underordnet den generelle siden.
PD_ENABLEPRINTTEMPLATEHANDLE
Angir at medlemmet hInstance identifiserer en datablokk som inneholder en mal for forhåndslagrede dialogboksen-boksen. Denne malen erstatter dialogboksen boksen standardmalen i den lavere delen av siden Generelt . Systemet bruker den oppgitte malen til å opprette et vindu som er underordnet den generelle siden. Systemet ignorerer medlemmet lpPrintTemplateName Hvis dette flagget er angitt.
PD_EXCLUSIONFLAGS
Angir at medlemmet ExclusionFlags identifiserer elementer som skal utelates fra egenskapssider for skriveren-driveren. Hvis dette flagget ikke er angitt, vil elementer utelates fra egenskapssider for skriveren-driveren som standard. Utestenginger unngå duplisering av elementer blant siden Generelt , sider som er angitt av programmet og utskriftssider for driveren.
PD_HIDEPRINTTOFILE
Skjuler merket for Skriv til fil.
PD_NOCURRENTPAGE
Deaktiverer alternativknappen Gjeldende side.
PD_NOPAGENUMS
Deaktiverer alternativknappen sider og tilknyttede redigeringskontrollene.
PD_NOSELECTION
Deaktiverer alternativknappen utvalg.
PD_NOWARNING
Hindrer at advarselen vises når en feil oppstår.
PD_PAGENUMS
Hvis dette flagget er angitt, er alternativknappen sider valgt. Hvis ingen av flaggene PD_PAGENUMS, PD_SELECTION eller PD_CURRENTPAGE er angitt, er alle alternativknappen valgt.

Hvis dette flagget er angitt når funksjonen PrintDlgEx returnerer, angir lpPageRanges -medlem sideområder som er angitt av brukeren.

PD_PRINTTOFILE
Hvis dette flagget er angitt, er det merket av for alternativet Skriv til fil.

Hvis dette flagget er angitt når PrintDlgEx kommer tilbake, forskyvningen som er angitt av wOutputOffset -medlemmet av DEVNAMES strukturen inneholder strengen "fil:". Når du kaller den StartDoc -funksjonen til å starte utskrift operasjonen, angir dette "fil:" streng i lpszOutput medlem av den DOCINFO struktur. Å angi denne strengen forårsaker Skriverdelsystemet å spørre brukeren etter navnet på utdatafilen.

PD_RETURNDC
Fører til PrintDlgEx til å returnere en enhetskontekst som samsvarer med valgene brukeren gjorde i egenskapsarket. Enheten sammenheng returneres i hDC.
PD_RETURNDEFAULT
Hvis dette flagget er angitt, vises ikke funksjonen PrintDlgEx egenskapsarket. I stedet, det setter hDevNames og hDevMode medlemmene til referanser til DEVMODE og DEVNAMES strukturer som er initialisert for standardskriveren for systemet. Både hDevNames og hDevMode må være NULL eller PrintDlgEx returnerer en feil.
PD_RETURNIC
Analog med PD_RETURNDC-flagg, bortsett fra dette flagget returnerer en kontekst for informasjon i stedet for en enhetskontekst. Hvis verken PD_RETURNDC eller PD_RETURNIC er angitt, hDC er ikke definert for utdata.
PD_SELECTION
Hvis dette flagget er angitt, er alternativknappen utvalg valgt.

Hvis ingen av flaggene PD_PAGENUMS, PD_SELECTION eller PD_CURRENTPAGE er angitt, er alle alternativknappen valgt.

PD_USEDEVMODECOPIES
Samme som PD_USEDEVMODECOPIESANDCOLLATE
PD_USEDEVMODECOPIESANDCOLLATE
Dette flagget angir om programmet støtter flere kopier og måltidet. Angi dette flagget på inndata for å angi at programmet ikke støtter flere kopier og måltidet. I dette tilfellet returnerer nCopies medlem av PRINTDLGEX -strukturen alltid 1, og PD_COLLATE er aldri satt i flagg -medlem.

Hvis dette flagget ikke er angitt, er programmet som er ansvarlig for utskrift og samordning av flere kopier. I dette tilfellet nCopies medlem av PRINTDLGEX -strukturen angir antall eksemplarer brukeren ønsker å skrive ut, og PD_COLLATE-flagget i medlemmet flagg angir om brukeren ønsker sammenlikning.

Et program kan finne ut fra nCopies og PD_COLLATE hvor mange eksemplarer du vil gjengi uansett om dette flagget er angitt, og om du vil skrive dem ut Kollatert.

Hvis dette flagget er angitt, og skriverdriveren støtter ikke flere kopier, er Kopier redigeringskontrollen deaktivert. På samme måte, hvis dette flagget er angitt, og skriverdriveren støtter ikke sortering, avkrysningsruten Sorter er deaktivert.

DmCopies og dmCollate medlemmer av den strukturen DEVMODE inneholder kopiene og kollatere informasjon som brukes av skriverdriveren. Hvis dette flagget er angitt, og skriverdriveren støtter flere kopier, angir medlemmet dmCopies hvor mange kopier som er forespurt av brukeren. Hvis dette flagget er angitt, og skriverdriveren støtter sortering, angir dmCollate -medlem på strukturen DEVMODE om brukeren ønsker sammenlikning. Hvis dette flagget ikke er angitt, dmCopies -medlem returnerer alltid 1, og dmCollate -medlem er alltid null.


Flags2
Reservert; må være null.
ExclusionFlags
Et sett med Bitflagg som kan utelate elementer fra egenskapssider for skriveren-driveren i egenskapsarket Skriv ut . Denne verdien brukes bare hvis flagget PD_EXCLUSIONFLAGS er angitt i flagg -medlem. Utelukkelse flagg bør brukes bare hvis varen skal utelates, vil bli inkludert på den generelle siden eller på en programdefinert side i egenskapsarket Skriv ut . Dette medlemmet kan angi følgende flagg.
PD_EXCL_COPIESANDCOLLATE
Ekskluderer eksemplarer og Sorter kontrollene fra egenskapssider for skriveren-driveren i et egenskapsark for utskrift . Dette flagget bør alltid angis når programmet bruker standard eksemplarer og Sorter kontrollene levert av nedre del av den generelle siden i egenskapsarket Skriv ut.

nPageRanges
På inndata, setter du dette medlemmet til det opprinnelige antallet sideområder som er angitt i lpPageRanges -matrisen. Når funksjonen PrintDlgEx returnerer, angir nPageRanges antall brukerangitte sideområder lagret i lpPageRanges -matrise. Hvis flagget PD_NOPAGENUMS er angitt, er denne verdien ikke gyldig.
nMaxPageRanges
Angir størrelsen, i matriseelementer, av lpPageRanges -buffer. Denne verdien angir maksimalt antall områder som kan være lagret i matrisen. Hvis flagget PD_NOPAGENUMS er angitt, er denne verdien ikke gyldig. Hvis flagget PD_NOPAGENUMS ikke er angitt, må denne verdien være større enn null.
lpPageRanges
Pekeren til en buffer som inneholder tabelldata med PRINTPAGERANGE -strukturer. For inndata inneholder datatabellen innledende sideområdene du vil vise i redigeringskontrollen sider . Når funksjonen PrintDlgEx returnerer, inneholder matrisen sideområder som er angitt av brukeren.

Hvis flagget PD_NOPAGENUMS er angitt, er denne verdien ikke gyldig. Hvis flagget PD_NOPAGENUMS ikke er angitt, må lpPageRanges være ikke-NULL.

nMinPage
Angir minimumsverdien for sideområder som er angitt i redigeringskontrollen sider . Hvis flagget PD_NOPAGENUMS er angitt, er denne verdien ikke gyldig.
nMaxPage
Angir maksimumsverdien for sideområder som er angitt i redigeringskontrollen sider . Hvis flagget PD_NOPAGENUMS er angitt, er denne verdien ikke gyldig.
nCopies
Inneholder innledende antall eksemplarer for redigeringskontrollen Kopier Hvis hDevMode er NULL; ellers dmCopies medlem av den strukturen DEVMODE inneholder startverdien.

Når PrintDlgEx kommer tilbake, inneholder det faktiske antallet Kopier programmet må skrive ut i nCopies . Denne verdien, avhengig av om programmet eller skriverdriveren er ansvarlig for å skrive ut flere eksemplarer. Hvis flagget PD_USEDEVMODECOPIESANDCOLLATE er angitt i flagg -medlem, nCopies er alltid 1 kom tilbake, og skriverdriveren er ansvarlig for å skrive ut flere eksemplarer. Hvis flagget ikke er angitt, er programmet som er ansvarlig for å skrive ut hvor mange kopier som er angitt av nCopies. Hvis du vil ha mer informasjon, kan du se beskrivelsen av PD_USEDEVMODECOPIESANDCOLLATE-flagg.

hInstance
Hvis flagget PD_ENABLEPRINTTEMPLATE er angitt i flagg -medlem, er hInstance håndtaket på programmet eller modul-forekomsten som inneholder dialogboksen boksen malen kalt av lpPrintTemplateName -medlemmet. Hvis flagget PD_ENABLEPRINTTEMPLATEHANDLE er angitt i flagg -medlem, er hInstance håndtak av en minne-objekt som inneholder en mal for dialogboksen-boksen. Hvis ingen av mal-flagg er satt i flagg -medlem, bør hInstance være NULL.
lpPrintTemplateName
Pekeren til en null-terminert streng som navngir en dialog-boksen mal ressurs i modulen identifisert av hInstance -medlemmet. Denne malen erstatter dialogboksen boksen standardmalen i den lavere delen av siden Generelt . Standardmalen inneholder kontroller som ligner innrykkene for dialogboksen Skriv ut . Dette medlemmet ignoreres hvis ikke flagget PD_ENABLEPRINTTEMPLATE er angitt i flagg -medlem.
lpCallback
Pekeren til et programdefinert tilbakekall-objekt.

Objektet skal inneholde IPrintDialogCallback -klassen til å motta meldinger for dialogboksen for barn i den nederste delen av siden Generelt.

Tilbakeringingsobjekt bør også inneholde den IObjectWithSite -klassen til å motta en peker til IPrintDialogServices -grensesnittet. Funksjonskall PrintDlgEx QueryInterface på Tilbakeringingsobjekt for både IID_IPrintDialogCallback og IID_IObjectWithSite for å finne ut hvilke grensesnitt støttes.

Hvis du ikke vil hente noe av informasjonen for tilbakeringing, kan du angi lpCallback til NULL.

nPropertyPages
Angir hvor mange egenskapen siden håndtakene i matrisen lphPropertyPages.
lphPropertyPages
Inneholder tabelldata med egenskapen siden håndtakene for å legge til egenskapsarket Skriv ut . Flere egenskapssider Følg generelle siden. Bruk den CreatePropertySheetPage -funksjon for å opprette disse tilleggssider. Hvis nPropertyPages er null, bør lphPropertyPages være NULL.
nStartPage
Angir egenskapssiden som vises først. Hvis du vil vise siden Generelt , angir du START_PAGE_GENERAL. Hvis ikke, kan du angi nullbasert indeks av en egenskapsside i matrisen som er angitt i lphPropertyPages -medlem. For consistency anbefales det at egenskapsarket alltid være startet på siden generelle.
dwResultAction
På inndata, setter du dette medlemmet til null. Hvis PrintDlgEx -funksjonen returnerer S_OK, inneholder dwResultAction utfallet av dialogen. Hvis PrintDlgEx returnerer en feil, bør dette medlemmet ignoreres. DwResultAction -egenskapen kan ha en av følgende verdier.
Verdi Betydning
PD_RESULT_APPLY Brukeren klikket Bruk -knappen og senere Avbryt -knappen. Dette angir at brukeren ønsker å bruke endringene som er gjort i egenskapsarket, men ikke ønsker å skrive ut ennå. PRINTDLGEX -strukturen inneholder informasjonen som er angitt av brukeren på tiden ble klikket Bruk -knappen.
PD_RESULT_CANCEL Brukeren klikket Avbryt -knappen. Informasjonen i PRINTDLGEX -strukturen er uendret.
PD_RESULT_PRINT Brukeren klikket på knappen Skriv ut . PRINTDLGEX -strukturen inneholder informasjon som er angitt av brukeren.

Merknader

Når du kaller funksjonen PrintDlgEx , bør du kontrollere at wDeviceOffset -medlem av DEVNAMES strukturen er identisk til dmDeviceName medlem av den strukturen DEVMODE . Hvis disse medlemmene ikke angir den samme skriveren, initialiserer PrintDlgEx egenskapsarket ved hjelp av skriveren som er angitt av wDeviceOffset -medlemmet.

Hvis både hDevMode og hDevNames er NULL, initialiserer PrintDlgEx vanligvis egenskapsarket ved hjelp av den gjeldende standardskriveren. Hvis de Flagget PD_RETURNDEFAULT er satt, og både hDevMode og hDevNames er NULL, bruker imidlertid PrintDlgEx hDevNames og hDevMode -medlemmer til å returnere informasjon om den gjeldende standardskriveren uten å vise egenskapsarket.

Under kjøring av PrintDlgEx, den DEVMODE og DEVNAMES strukturer som er angitt i PRINTDLGEX -strukturen ikke alltid inneholder gjeldende data. Derfor bør programspesifikke egenskapssider, så vel som IPrintDialogCallback rutiner for startsiden bruke IPrintDialogServices -grensesnittet til å hente informasjon om statusen for den gjeldende skriveren.

Hurtiginformasjon

nbsp; Windows &NT: krever versjon 5.0 eller senere.
Windows:Som ikke støttes.
Windows CE:Som ikke støttes.
Topptekst:Deklarert i commdlg.h.
Importere biblioteket:Bruk comdlg32.lib.
Unicode:Definert som Unicode- og ANSI-strukturer.

Se også

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

Index