PRINTDLGEX

[Questo è documentazione preliminare e soggetto a cambiare].

La struttura PRINTDLGEX contiene informazioni che la funzione PrintDlgEx viene utilizzata per inizializzare il foglio di proprietà di stampa . Dopo che l'utente chiude la finestra delle proprietà, il sistema utilizza questa struttura per restituire informazioni su selezioni dell'utente.

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

Membri

lStructSize
Specifica la dimensione della struttura, in byte.
hwndOwner
Gestire alla finestra che possiede la finestra delle proprietà. Questo membro deve essere un handle di finestra valido; non può essere NULL.
hDevMode
Handle per un oggetto di mobili memoria globale che contiene un struttura DEVMODE . Se hDevMode non è NULL per l'input, è necessario allocare un blocco mobile di memoria per la struttura DEVMODE e inizializzare i suoi membri. La funzione PrintDlgEx utilizza l'ingresso vo inizializzare i controlli nella finestra delle proprietà. Quando PrintDlgEx restituisce, i membri DEVMODE indicano l'input dell'utente.

Se hDevMode è NULL per l'input, PrintDlgEx alloca memoria per la struttura DEVMODE , Inizializza i suoi membri per indicare l'input dell'utente e restituisce un handle che lo identifica.

Per ulteriori informazioni sui membri hDevMode e hDevNames , vedere la sezione osservazioni alla fine di questo argomento.

hDevNames
Handle per un oggetto mobili memoria globale che contiene una struttura DEVNAMES . Se hDevNames non è NULL per l'input, è necessario allocare un blocco mobile di memoria per la struttura DEVNAMES e inizializzare i suoi membri. La funzione PrintDlgEx utilizza l'ingresso vo inizializzare i controlli nella finestra delle proprietà. Quando PrintDlgEx restituisce, i membri DEVNAMES contengono informazioni per la stampante scelta dall'utente. È possibile utilizzare queste informazioni per creare un contesto di periferica o un contesto di informazioni.

Il membro hDevNames può essere NULL, nel qual caso, PrintDlgEx alloca memoria per la struttura DEVNAMES , Inizializza i suoi membri per indicare all'utente di input, e restituisce un handle che lo identifica.

Per ulteriori informazioni sui membri hDevMode e hDevNames , vedere la sezione osservazioni alla fine di questo argomento.

hDC
Handle per un contesto di periferica o un contesto di informazioni, dipende se il membro flag specifica il flag PD_RETURNDC o PC_RETURNIC. Se viene specificato nessuna bandiera, il valore di questo membro è definito. Se vengono specificati entrambi i flag PD_RETURNDC ha priorità.
Bandiere
Un insieme di flag di bit che è possibile utilizzare per inizializzare la finestra delle proprietà Print . Quando la funzione PrintDlgEx restituisce, imposta questi flag per indicare l'input dell'utente. Questo membro può essere una combinazione dei seguenti flag.
PD_ALLPAGES
Il flag predefinito che indica che il pulsante radio tutto inizialmente sia selezionato. Questo flag viene utilizzato come segnaposto per indicare che i flag PD_PAGENUMS, PD_SELECTION e PD_CURRENTPAGE non sono specificati.
PD_COLLATE
Se questo flag è impostato, è selezionata la casella di controllo Collate.

Se questo flag è impostato quando la funzione PrintDlgEx restituisce, l'applicazione deve simulare le regole di confronto di più copie. Per ulteriori informazioni, vedere la descrizione del flag PD_USEDEVMODECOPIESANDCOLLATE.

PD_CURRENTPAGE
Se questo flag è impostato, viene selezionato il pulsante di Pagina corrente . Se nessuno dei flag PD_PAGENUMS, PD_SELECTION o PD_CURRENTPAGE è impostata, viene selezionato il pulsante di opzione tutte le.
PD_DISABLEPRINTTOFILE
Consente di disattivare la casella di controllo stampa su File.
PD_ENABLEPRINTTEMPLATE
Indica che i membri hInstance e lpPrintTemplateName specificano un sostituto per il modello di finestra di dialogo predefinita nella parte inferiore della pagina generale . Il modello predefinito contiene controlli simili a quelle della finestra di dialogo stampa . Il sistema utilizza il modello specificato per creare una finestra che è figlio della pagina generale.
PD_ENABLEPRINTTEMPLATEHANDLE
Indica che il membro hInstance identifica un blocco di dati che contiene un modello di finestra di dialogo precaricati. Questo modello sostituisce il modello predefinito di dialogo casella nella parte inferiore della pagina generale . Il sistema utilizza il modello specificato per creare una finestra che è figlio della pagina generale . Il sistema ignora il membro lpPrintTemplateName se questo flag viene specificato.
PD_EXCLUSIONFLAGS
Indica che il membro ExclusionFlags identifica gli elementi da escludere da pagine delle proprietà del driver stampante. Se questo flag non è impostato, gli elementi verranno escluse per impostazione predefinita da pagine delle proprietà del driver stampante. Le esclusioni di evitare la duplicazione degli elementi tra la pagina generale , tutte le pagine specificato dall'applicazione e le pagine di driver di stampante.
PD_HIDEPRINTTOFILE
Nasconde la casella di controllo stampa su File.
PD_NOCURRENTPAGE
Disabilita il pulsante di Pagina corrente.
PD_NOPAGENUMS
Consente di disattivare il pulsante di opzione pagine e i controlli di modifica associato.
PD_NOSELECTION
Disabilita il pulsante di selezione.
PD_NOWARNING
Impedisce che il messaggio di avviso viene visualizzato quando si verifica un errore.
PD_PAGENUMS
Se questo flag è impostato, viene selezionato il pulsante di opzione pagine . Se nessuno dei flag PD_PAGENUMS, PD_SELECTION o PD_CURRENTPAGE è impostata, viene selezionato il pulsante di opzione tutte le.

Se questo flag è impostato quando la funzione PrintDlgEx restituisce, il membro lpPageRanges indica gli intervalli di pagina specificati dall'utente.

PD_PRINTTOFILE
Se questo flag è impostato, è selezionata la casella di controllo stampa su File.

Se questo flag è impostato quando PrintDlgEx restituisce, l'offset indicato dal membro della struttura DEVNAMES wOutputOffset contiene la stringa "FILE:". Quando si chiama il StartDoc funzione per avviare l'operazione di stampa, specificare questo "FILE:" stringa nel membro di lpszOutput i struttura DOCINFO . Specificando questa stringa provoca il sottosistema di stampa eseguire una query dell'utente per il nome del file di output.

PD_RETURNDC
Cause PrintDlgEx per restituire un contesto di periferica di corrispondenza le selezioni apportate nella finestra delle proprietà dall'utente. Il contesto di periferica viene restituito in hDC.
PD_RETURNDEFAULT
Se questo flag è impostato, la funzione PrintDlgEx non viene visualizzata la finestra delle proprietà. Invece, imposta i membri hDevNames e hDevMode alle maniglie a strutture DEVMODE e DEVNAMES che vengono inizializzate per la stampante predefinita del sistema. Sia hDevNames che hDevMode deve essere NULL, o PrintDlgEx restituisce un errore.
PD_RETURNIC
Simile a quella PD_RETURNDC, tranne questo flag restituisce un contesto informazioni piuttosto che in un contesto di periferica. Se viene specificata né PD_RETURNDC né PD_RETURNIC, hDC è indefinito in uscita.
PD_SELECTION
Se questo flag è impostato, viene selezionato il pulsante di selezione.

Se nessuno dei flag PD_PAGENUMS, PD_SELECTION o PD_CURRENTPAGE è impostata, viene selezionato il pulsante di opzione tutte le.

PD_USEDEVMODECOPIES
Come PD_USEDEVMODECOPIESANDCOLLATE
PD_USEDEVMODECOPIESANDCOLLATE
Questo flag indica se l'applicazione supporta più copie e le regole di confronto. Impostare questo flag in input per indicare che l'applicazione non supporta più copie e le regole di confronto. In questo caso, il nCopies membro della struttura PRINTDLGEX restituisce sempre 1 e PD_COLLATE mai è impostato nel membro flag.

Se questo flag non è impostato, l'applicazione è responsabile per la stampa e la fascicolazione delle copie multiple. In questo caso, il membro nCopies della struttura PRINTDLGEX indica il numero di copie che l'utente desidera stampare e il flag PD_COLLATE nel membro flag indica se l'utente vuole delle regole di confronto.

Indipendentemente dal fatto se questo flag è impostato, un'applicazione in grado di determinare da nCopies e PD_COLLATE quante copie per eseguire il rendering e se stampare li fascicolate.

Se questo flag è impostato e il driver della stampante non supporta più copie, viene disattivato il controllo di modifica di copie . Allo stesso modo, se questo flag è impostato e il driver della stampante non supporta le regole di confronto, la casella di controllo Collate è disattivato.

I membri di dmCopies e dmCollate i struttura DEVMODE contengono le copie e Fascicola le informazioni utilizzate dal driver della stampante. Se questo flag è impostato e il driver della stampante supporta più copie, il membro dmCopies indica il numero di copie richiesta dall'utente. Se questo flag è impostato e il driver della stampante supporta le regole di confronto, il membro dmCollate della struttura DEVMODE indica se l'utente vuole delle regole di confronto. Se questo flag non è impostato, il membro dmCopies restituisce sempre il 1 e il membro dmCollate è sempre uguale a zero.


Flags2
Riservati; deve essere zero.
ExclusionFlags
Un insieme di flag di bit che possono escludere gli elementi dalle pagine delle proprietà driver stampante nella finestra delle proprietà Print . Questo valore viene utilizzato solo se il flag PD_EXCLUSIONFLAGS è impostato nel membro flag . Bandiere di esclusione devono essere utilizzate solo se l'elemento da escludere sarà incluso nella pagina generale o in una pagina nella finestra delle proprietà stampa definiti dall'applicazione. Questo membro può specificare il flag seguente.
PD_EXCL_COPIESANDCOLLATE
Esclude i controlli copie e Fascicola dalle pagine delle proprietà driver stampante in una finestra delle proprietà Print . Questo flag deve essere sempre impostato quando l'applicazione utilizza i controlli di copie e Fascicola predefinito forniti da parte inferiore della pagina generale della finestra delle proprietà Print.

nPageRanges
In input, impostare questo membro numero iniziale di pagina intervalli specificati nella matrice lpPageRanges . Quando la funzione PrintDlgEx restituisce, nPageRanges indica il numero di intervalli di pagina specificata dall'utente memorizzati nella matrice lpPageRanges . Se viene specificato il flag PD_NOPAGENUMS, questo valore non è valido.
nMaxPageRanges
Specifica le dimensioni, in elementi di matrice, del buffer lpPageRanges . Questo valore indica il numero massimo di intervalli di pagina possono essere memorizzati nella matrice. Se viene specificato il flag PD_NOPAGENUMS, questo valore non è valido. Se non viene specificato il flag PD_NOPAGENUMS, questo valore deve essere maggiore di zero.
lpPageRanges
Puntatore a un buffer contenente una matrice di strutture PRINTPAGERANGE . In input, la matrice contiene gli intervalli di pagina iniziale da visualizzare nel controllo di modifica pagine . Quando la funzione PrintDlgEx restituisce, la matrice contiene gli intervalli di pagina specificati dall'utente.

Se viene specificato il flag PD_NOPAGENUMS, questo valore non è valido. Se non viene specificato il flag PD_NOPAGENUMS, lpPageRanges deve essere diverso da NULL.

nMinPage
Specifica il valore minimo per gli intervalli di pagina specificato nel controllo di modifica pagine . Se viene specificato il flag PD_NOPAGENUMS, questo valore non è valido.
nMaxPage
Specifica il valore massimo per gli intervalli di pagina specificato nel controllo di modifica pagine . Se viene specificato il flag PD_NOPAGENUMS, questo valore non è valido.
nCopies
Contiene il numero iniziale di copie per il controllo di modifica copie se hDevMode è NULL; in caso contrario, il membro dmCopies i struttura DEVMODE contiene il valore iniziale.

Quando PrintDlgEx restituisce, nCopies contiene il numero effettivo di applicazione deve stampare copie. Questo valore varia a seconda se l'applicazione o il driver della stampante è responsabile per la stampa di più copie. Se nel membro flag è impostato il flag PD_USEDEVMODECOPIESANDCOLLATE, nCopies è sempre 1 al ritorno e il driver della stampante è responsabile per la stampa di più copie. Se il flag non è impostato, l'applicazione è responsabile della stampa il numero di copie specificato da nCopies. Per ulteriori informazioni, vedere la descrizione del flag PD_USEDEVMODECOPIESANDCOLLATE.

hInstance
Se nel membro flag è impostato il flag PD_ENABLEPRINTTEMPLATE, hInstance è l'handle dell'applicazione o istanza di modulo che contiene il modello di finestra di dialogo denominato dal membro lpPrintTemplateName . Se nel membro flag è impostato il flag PD_ENABLEPRINTTEMPLATEHANDLE, hInstance è l'handle di un oggetto di memoria contenente un modello di finestra di dialogo. Se nessuno dei flag di modello è impostato nel membro flag , hInstance deve essere NULL.
lpPrintTemplateName
Puntatore a una stringa con terminazione null che assegna una risorsa di modello di dialogo casella nel modulo identificato dal membro hInstance . Questo modello sostituisce il modello predefinito di dialogo casella nella parte inferiore della pagina generale . Il modello predefinito contiene controlli simili a quelle della finestra di dialogo stampa . Questo membro viene ignorato a meno che il flag PD_ENABLEPRINTTEMPLATE è impostato nel membro flag.
lpCallback
Puntatore a un oggetto callback definito dall'applicazione.

L'oggetto dovrà contenere la classe IPrintDialogCallback per ricevere i messaggi per la finestra di dialogo bambino nella parte inferiore della pagina generale.

L'oggetto callback deve inoltre contenere il IObjectWithSite classe per ricevere un puntatore all'interfaccia IPrintDialogServices . Le chiamate di funzione PrintDlgEx QueryInterface sull'oggetto callback per IID_IPrintDialogCallback e IID_IObjectWithSite determinare quali interfacce sono supportate.

Se non si desidera recuperare l'informazione di richiamata, impostare lpCallback su NULL.

nPropertyPages
Specifica il numero di proprietà Handle pagina nella matrice lphPropertyPages.
lphPropertyPages
Contiene una matrice di proprietà handle della pagina per aggiungere alla finestra Proprietà del Print . Le pagine delle proprietà aggiuntive seguono la pagina generale . Uso il CreatePropertySheetPage funzione per creare queste pagine aggiuntive. Se nPropertyPages è zero, lphPropertyPages deve essere NULL.
nStartPage
Specifica la pagina delle proprietà che inizialmente viene visualizzata. Per visualizzare la pagina generale , specificare START_PAGE_GENERAL. In caso contrario, specificare l'indice in una pagina delle proprietà della matrice specificato nel membro lphPropertyPages . Per coerenza, è consigliabile che la finestra delle proprietà sempre essere avviato nella pagina generale.
dwResultAction
In input, impostare questo membro su zero. Se la funzione PrintDlgEx restituisce S_OK, dwResultAction contiene il risultato della finestra di dialogo. Se PrintDlgEx restituisce un errore, questo membro deve essere ignorato. Il membro dwResultAction può essere uno dei seguenti valori.
Valore Significato
PD_RESULT_APPLY L'utente fa clic sul pulsante applica e poi fatto clic sul pulsante Annulla . Questo indica che l'utente vuole applicare le modifiche apportate nella finestra delle proprietà, ma non vuole stampare ancora. La struttura PRINTDLGEX contiene le informazioni specificate dall'utente al momento è stato fatto clic sul pulsante applica.
PD_RESULT_CANCEL L'utente ha fatto clic sul pulsante Annulla . Le informazioni della struttura PRINTDLGEX sono invariate.
PD_RESULT_PRINT L'utente fa clic sul pulsante stampa . La struttura PRINTDLGEX contiene le informazioni specificate dall'utente.

Osservazioni

Quando si chiama la funzione PrintDlgEx , essere sicuri che il membro wDeviceOffset della struttura DEVNAMES è identico al membro del dmDeviceName la struttura DEVMODE . Se questi membri non si specificano la stessa stampante, PrintDlgEx Inizializza la finestra delle proprietà utilizzando la stampante specificata dal membro wDeviceOffset.

In genere, se hDevMode e hDevNames sono NULL, PrintDlgEx Inizializza la finestra delle proprietà utilizzando la stampante predefinita corrente. Tuttavia, se è impostato il flag PD_RETURNDEFAULT e hDevMode e hDevNames sono entrambi NULL, PrintDlgEx utilizza i membri hDevNames e hDevMode per restituire informazioni sulla stampante predefinita corrente senza visualizzare la finestra delle proprietà.

Durante l'esecuzione di PrintDlgEx, la strutture DEVMODE e DEVNAMES che specificato nella struttura PRINTDLGEX non sempre possono contenere dati correnti. Per questo motivo, pagine delle proprietà specifiche dell'applicazione, nonché le routine di IPrintDialogCallback per la pagina iniziale dovrebbero utilizzare l'interfaccia IPrintDialogServices per recuperare le informazioni sullo stato della stampante corrente.

Descrizione

nbsp; Windows &NT: richiede una versione 5.0 o successive.
Windows:Non supportato.
Windows CE:Non supportato.
Intestazione:Dichiarati in commdlg.h.
Importare librerie:Utilizzare comdlg32.lib.
Unicode:Definito come strutture di Unicode e ANSI.

Vedi anche

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

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

Index