CPrintDialog

La classe CPrintDialog incapsula i servizi forniti da Windows comune nella finestra di dialogo per la stampa. Finestre di dialogo di stampa comuni forniscono un modo semplice per implementare le finestre di dialogo di stampa e stampa Setup in modo coerente con gli standard di Windows.

Se lo si desidera, può contare su framework per gestire molti aspetti del processo di stampa per la vostra applicazione. In questo caso, il quadro Visualizza automaticamente le finestre dialogo comune per la stampa. Può anche avere l'handle del quadro di stampa per l'applicazione ma l'override comune dialogo Stampa con il proprio dialogo di stampa. Per ulteriori informazioni sull'utilizzo del framework per gestire le attività di stampa, vedere l'articolo stampa nel manuale del programmatore di Visual C++.

Se si desidera che l'applicazione di gestire la stampa senza coinvolgimento del framework, è possibile utilizzare la classe CPrintDialog "come è" con il costruttore fornito, oppure è possibile derivare una classe di dialogo da CPrintDialog e scrivere un costruttore alle proprie esigenze. In entrambi i casi, queste finestre di dialogo si comporteranno come finestra di dialogo MFC standard, perché essi sono derivati dalla classe CCommonDialog.

Per utilizzare un oggetto CPrintDialog , prima di creare l'oggetto utilizzando il costruttore CPrintDialog . Una volta che la finestra di dialogo è stato costruito, è possibile impostare o modificare eventuali valori nella struttura m_pd per inizializzare i valori dei controlli della finestra di dialogo. La struttura di m_pd è di tipo PRINTDLG. Per ulteriori informazioni su questa struttura, vedere la documentazione di Win32 SDK.

Se non viene fornito i proprio maniglie in m_pd i membri hDevMode e hDevNames , assicurarsi di chiamare la funzione Windows GlobalFree per queste maniglie quando si è fatto con la finestra di dialogo. Quando si utilizza l'implementazione di installazione di stampa del framework fornito da CWinApp::OnFilePrintSetup, non è necessario liberare queste maniglie. Le maniglie sono mantenute da CWinApp e vengono liberate nel distruttore di CWinApp. È solo necessario liberare queste maniglie quando si utilizza CPrintDialog stand-alone.

Dopo l'inizializzazione dei controlli casella di dialogo, chiamare la funzione membro DoModal per visualizzare la finestra di dialogo e consentire all'utente di selezionare le opzioni di stampa. DoModal restituisce se l'utente selezionato l'OK (IDOK) o il pulsante Annulla (IDCANCEL).

Se DoModal restituisce IDOK, è possibile utilizzare una delle funzioni membro di CPrintDialogper recuperare le informazioni di input da parte dell'utente.

La funzione membro CPrintDialog::GetDefaults è utile per recuperare i valori predefiniti correnti stampante senza visualizzare una finestra di dialogo. Questa funzione membro non richiede alcuna interazione dell'utente.

È possibile utilizzare la funzione di Windows CommDlgExtendedError per determinare se si è verificato un errore durante l'inizializzazione della finestra di dialogo e per ulteriori informazioni sull'errore. Per ulteriori informazioni su questa funzione, vedere la documentazione di Win32 SDK.

CPrintDialog si basa sulla COMMDLG.File DLL che viene fornito con Windows 3.1 e versioni successive.

Per personalizzare la finestra di dialogo, derivare una classe da CPrintDialog, fornire un modello di dialogo personalizzate e aggiungere una mappa messaggi per elaborare i messaggi di notifica da controlli estesi. Eventuali messaggi non trasformati devono essere passati alla classe base. Non è necessario personalizzare la funzione hook.

Per elaborare il messaggio stesso in modo diverso a seconda che il dialogo sia Print o installazione di stampa, è necessario derivare una classe per ogni finestra di dialogo. Eseguire anche l'override della funzione di Windows AttachOnSetup , che gestisce la creazione di una nuova finestra di dialogo quando viene selezionato il pulsante impostazioni di stampa all'interno di una finestra di dialogo Stampa.

Per ulteriori informazioni sull'utilizzo di CPrintDialog, vedere Classi di dialogo comuni nel manuale del programmatore di Visual C++.

# include lt;afxdlgs.h>

Membri della classe |nbsp; Classe base | Gerarchia Chart

Campio&nenbsp; Esempio MFC DIBLOOK

Vedere a&nchenbsp;CPrintInfo

Index