Utskrift, dialogboks

Dialogboksen Skriv ut lar brukeren velge alternativer for en bestemt utskriftsjobb. Brukeren kan for eksempel angi at skriveren skal bruke sideområdet som skal skrives ut og antall eksemplarer.

Windows NT 5.0 og senere: Du kan bruke PrintDlgEx -funksjonen for å vise egenskapsarket for Print , som har en generell side som inneholder kontroller som ligner på dialogboksen Skriv ut . Egenskapsarket kan også ha flere programspesifikke og driverspesifikke egenskapssider etter generelle side.

Du kan opprette og vise en Skriv ut -dialogboks ved initialisering av en PRINTDLG struktur og sender strukturen til PrintDlg -funksjonen.

Følgende illustrasjon viser en typisk utskriftsdialogboksen.

Hvis brukeren klikker OK -knappen, PrintDlg returnerer SANN, og bruker PRINTDLG -strukturen til å returnere informasjon om brukerens valg. For eksempel medlemmene hDevMode og hDevNames vanligvis returnerer globale minne håndtak for DEVMODE og DEVNAMES strukturer. Du kan bruke informasjonen i disse strukturene for å opprette en enhetskontekst eller en kontekst for informasjon for den valgte skriveren.

Hvis brukeren avbryter dialogboksen Skriv ut , eller det oppstår en feil, returnerer PrintDlg USANN. Du kan fastslå årsaken til en feil ved hjelp av CommDlgExtendedError -funksjonen til å hente verdien utvidet feil.

Dialogboksen Skriv ut inneholder et Utskriftsområde gruppe med alternativknapper som angir om brukeren ønsker å skrive ut alle sider, et utvalg av sider, eller bare den merkede teksten. Før du kaller PrintDlg, kan du angi en av PD_ALLPAGES, PD_SELECTION eller PD_PAGENUMS-flagg for å indikere hvilken knapp velges først. Når PrintDlg returnerer SANN, angir funksjonen en av disse flaggene for å angi brukerens valg. Hvis PD_PAGENUMS er satt, inneholder nFromPage og nToPage medlemmer av PRINTDLG -strukturen start- og Sluttsiden som er angitt av brukeren. Du vil deaktivere alternativknappen sider og dens tilknyttede fra og til redigeringskontroller, setter du PD_NOPAGENUMS-flagg. Hvis du vil deaktiverer alternativknappen utvalg , setter du PD_NOSELECTION-flagg.

Dialogboksen inneholder en redigeringskontroll der brukeren kan skrive inn hvor mange eksemplarer du vil skrive ut. Hvis det hDevMode i PRINTDLG -strukturen er ikke-NULL, dmCopies medlem av den strukturen DEVMODE Angir startverdien for denne redigeringskontrollen. Hvis hDevMode er NULL, angir startverdien i nCopies -medlem av PRINTDLG -strukturen. Når PrintDlg kommer tilbake, indikerer nCopies vanligvis hvor mange kopier som er angitt av brukeren. Men hvis du angir PD_USEDEVMODECOPIESANDCOLLATE-flagget når du oppretter dialogboksen, nCopies er alltid satt til 1 på retur og dmCopies medlem av DEVMODE angir hvor mange eksemplarer du vil skrive ut.

Avmerkingsboksen Kollater angir om brukeren vil sortere sidene Hvis flere eksemplarer skrives. PD_COLLATE-flagget er satt, hvis det er merket av for Sorter . Hvis programmet ikke støtter flere eksemplarer eller simulert sammenlikning, sette PD_USEDEVMODECOPIESANDCOLLATE-flagget i flagg -medlem av PRINTDLG -strukturen. Dette deaktiverer avmerkingsboksen Kollater og Antall eksemplarer redigeringskontroll med mindre skriverdriveren støtter flere kopier og måltidet.

Merket for Skriv til fil angir om brukeren vil sende utdata til en fil i stedet for til en skriver. Du kan angi flagget PD_PRINTTOFILE slik at det først er merket. Hvis du vil skjule merket for, kan du angi PD_HIDEPRINTTOFILE-flagg. Hvis du vil deaktivere den, kan du angi PD_DISABLEPRINTTOFILE-flagg. Hvis brukeren velger alternativet Skriv til fil , PrintDlg angir flagget PD_PRINTTOFILE og returnerer "fil:" på offset som er angitt av wOutputOffset -medlemmet av DEVNAMES strukturen. 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.

Som standard viser dialogboksen Skriv ut først informasjon om den gjeldende standardskriveren. Du kan direkte det viser informasjon for en annen installert skriver ved initialisering av en DEVMODE eller DEVNAMES struktur og tilordne globale minnet kontrollhåndtak på strukturen til hDevMode eller hDevNames -medlem. Enhetsnavnet du angir i dmDeviceName -medlem på strukturen DEVMODE eller i wDriverOffset -medlem av DEVNAMES strukturen må identifisere en skriverenhet som også er oppført i delen [Devices] i seier.INI-filen. Hvis enheten ikke er oppført, returnerer PrintDlg en feil.

Du kan direkte PrintDlg for å opprette en enhetskontekst eller informasjon kontekst for skriveren ved å angi flagget PD_RETURNDC eller PD_RETURNIC i flaggene -medlem av PRINTDLG -strukturen. Funksjonen returnerer håndtaket for enhetskontekst eller informasjon sammenheng i hDC -medlem. Hvis du bruker PD_RETURNDC-flagg, kan du bruke enheten sammenheng for å generere utdata for skriveren.

Hente informasjon om standardskriveren uten å vise dialogboksen Skriv ut , kan du angi de Flagget PD_RETURNDEFAULT. I dette tilfellet returnerer PrintDlg umiddelbart når hDevMode og hDevNames -medlemmer som er satt til håndtak for strukturer som inneholder informasjonen.

Som standard viser PrintDlg meldingsbokser når feil oppstår. Funksjonen kan for eksempel viser en feilmelding hvis ingen skrivere er installert. Hvis du vil forhindre at funksjonen viser disse varslene, sett flagget PD_NOWARNING.

Index