Visualizzare la finestra di dialogo Stampa

Questo argomento descrive l'esempio di codice che visualizza una finestra di dialogo stampa , in modo che un utente pu˛ selezionare le opzioni per la stampa di un documento. Il codice di esempio in primo luogo Inizializza una struttura PRINTDLG e quindi chiama la funzione PrintDlg per visualizzare la finestra di dialogo.

Questo esempio imposta il flag PD_RETURNDC nel membro Flags della struttura PRINTDLG . Questo provoca PrintDlg restituire un handle di contesto di periferica per la stampante selezionata nel membro hDC . ╚ possibile utilizzare l'handle per il rendering dell'output sulla stampante.

In input, il codice di esempio imposta i membri hDevMode e hDevNames su NULL. Se la funzione restituisce TRUE, questi membri restituiscono maniglie a DEVNAMES e DEVMODE strutture contenenti input dell'utente e informazioni sulla stampante. ╚ possibile utilizzare queste informazioni per preparare l'output da inviare alla stampante selezionata.

PRINTDLG pd;
HWND hwnd;

/ / Initialize PRINTDLG
ZeroMemory (amp; pd, sizeof(PRINTDLG));
PD.lStructSize = sizeof(PRINTDLG);
PD.hwndOwner = hwnd;
PD.hDevMode = NULL;      / / Non dimenticate di free o memorizzare hDevMode.
PD.hDevNames = NULL;      / / Non dimenticate di free o memorizzare hDevNames.
PD.Flags = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC; 
PD.nCopies = 1;
PD.nFromPage = 0xFFFF; 
PD.nToPage = 0xFFFF; 
PD.nMinPage = 1; 
PD.nMaxPage = 0xFFFF; 

Se (PrintDlg(&pd) = = TRUE) {

/ GDI chiamate a rendering dell'output. 

    / / Delete DC quando fatto.
    DeleteDC(pd.hDC);
} 

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index