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.