Foglio delle proprietà print

Il foglio delle proprietà Print è un'interfaccia utente standard che consente all'utente di specificare le proprietà di un determinato processo di stampa. Il foglio delle proprietà è costituito da un set di pagine delle proprietà che variano in base alla stampante o all'applicazione. Per un subset di pagine delle proprietà Windows standard, alcune stampanti potrebbero aggiungere pagine di proprietà specifiche del driver e alcune applicazioni potrebbero aggiungere pagine di proprietà specifiche dell'applicazione.

Per creare e visualizzare un foglio delle proprietà Print , inizializzare una struttura PRINTDLGEX e passare la struttura alla funzione PrintDlgEx .

La figura seguente mostra un tipico foglio delle proprietà Print .

foglio delle proprietà della stampante

La maggior parte dei membri della struttura PRINTDLGEX è identica a quella della struttura PRINTDLG . Per le descrizioni di come usare i membri della struttura comuni per interagire con i controlli della finestra di dialogo, vedere Finestra di dialogo Stampa. La parte restante di questo argomento descrive le funzionalità del foglio delle proprietà Print diverse dalla finestra di dialogo Stampa .

È possibile personalizzare un foglio delle proprietà Print specificando un modello di finestra di dialogo personalizzato per la parte inferiore della pagina Generale e specificando pagine di proprietà aggiuntive per seguire la pagina Generale . Per altre informazioni, vedere Personalizzazione del foglio delle proprietà di stampa.

È possibile implementare un oggetto callback per ricevere notifiche e messaggi dalla funzione PrintDlgEx mentre viene visualizzato il foglio delle proprietà. Le applicazioni che forniscono modelli personalizzati o pagine aggiuntive usano l'oggetto callback per comunicare con il foglio delle proprietà. Per altre informazioni, vedere Oggetto Callback per il foglio delle proprietà di stampa.

Il foglio delle proprietà Print fornisce il supporto per specificare più intervalli di pagine non contigui da stampare. Il membro lpPageRanges della struttura PRINTDLGEX specifica una matrice di strutture PRINTPAGERANGE in cui ogni struttura specifica un intervallo di pagine.

Il foglio delle proprietà Print visualizza un pulsante di opzione Pagina corrente come parte del gruppo Intervallo di pagine dei pulsanti di opzione. Per controllare il pulsante di opzione Pagina corrente , usare i flag di PD_CURRENTPAGE e PD_NOCURRENTPAGE nel membro Flag della struttura PRINTDLGEX .

Questa sezione illustra gli argomenti seguenti.

Personalizzazione del foglio delle proprietà di stampa

È possibile personalizzare il foglio delle proprietà Print nei modi seguenti:

  • Specificare un modello personalizzato per la parte inferiore della pagina Generale . Ciò consente di includere controlli aggiuntivi univoci per l'applicazione. La funzione PrintDlgEx usa il modello personalizzato al posto del modello predefinito.
  • Specificare pagine di proprietà aggiuntive per seguire la pagina Generale .
  • Specificare un oggetto callback. Per altre informazioni, vedere Oggetto Callback per il foglio delle proprietà di stampa.

Non è possibile modificare la parte superiore della pagina Generale . Non è possibile modificare le pagine delle proprietà fornite dal driver della stampante.

Per specificare un modello personalizzato per la pagina Generale:

  1. Creare un modello personalizzato per la parte inferiore della pagina Generale modificando il modello PRINTDLGEXORD specificato nel file Prnsetup.dlg. In genere, il modello personalizzato deve essere la stessa dimensione del modello predefinito. Tuttavia, è possibile ingrandire il modello personalizzato se si specifica il flag PD_USELARGETEMPLATE per creare una pagina Generale più grande. Gli identificatori di controllo usati nel modello di dialogo stampa predefinito sono definiti nel file Dlgs.h.

  2. Usare la struttura PRINTDLGEX per abilitare il modello come indicato di seguito:

    • Se il modello personalizzato è una risorsa in un'applicazione o in una libreria di collegamento dinamico, impostare il flag PD_ENABLEPRINTTEMPLATE nel membro Flags . Usare i membri hInstance e lpPrintTemplateName della struttura per identificare il modulo e il nome della risorsa.

      Oppure

    • Se il modello personalizzato è già in memoria, impostare il flag di PD_ENABLEPRINTTEMPLATEHANDLE . Usare il membro hInstance per identificare l'oggetto memoria che contiene il modello.

  3. Se si usa un modello personalizzato per definire controlli aggiuntivi, è necessario fornire un oggetto callback per elaborare l'input per i controlli. L'oggetto callback implementa un metodo IPrintDialogCallback::HandleMessage che riceve messaggi inviati alla finestra di dialogo personalizzata.

Per fornire pagine di proprietà aggiuntive

  1. Usare la funzione per creare le pagine aggiuntive.

  2. Usare il membro lphPropertyPages della struttura PRINTDLGEX per specificare una matrice di handle nelle pagine aggiuntive.

    Le procedure della finestra di dialogo specificate al momento della creazione di ogni messaggio di processo di pagina inviate alle pagine.

  3. È possibile specificare un oggetto callback che implementa l'interfaccia. La funzione PrintDlgEx usa questa interfaccia per passare all'applicazione un puntatore a un'interfaccia IPrintDialogServices . Le procedure della finestra di dialogo per le pagine delle proprietà aggiuntive possono usare questa interfaccia per recuperare informazioni sulla stampante attualmente selezionata.

Oggetto Callback per il foglio delle proprietà di stampa

Un'applicazione che visualizza un foglio delle proprietà Print può implementare un oggetto callback per ricevere notifiche e messaggi dalla funzione PrintDlgEx mentre viene visualizzato il foglio delle proprietà. Per specificare un oggetto callback, specificare un puntatore all'oggetto nel membro lpCallback della struttura PRINTDLGEX .

L'oggetto callback deve implementare l'interfaccia IPrintDialogCallback . La funzione PrintDlgEx chiama i metodi IPrintDialogCallback nelle situazioni seguenti:

  • Quando la finestra di dialogo è stata inizializzata
  • Quando l'utente seleziona una stampante diversa dall'elenco delle stampanti installate visualizzate dal foglio delle proprietà
  • Quando riceve messaggi per la finestra di dialogo figlio nella parte inferiore della pagina Generale del foglio delle proprietà

L'oggetto callback deve anche implementare l'interfaccia IObjectWithSite . La funzione PrintDlgEx chiama il metodo per passare un puntatore a un'interfaccia IPrintDialogServices a un'applicazione. I metodi IPrintDialogCallback possono usare l'interfaccia IPrintDialogServices per recuperare informazioni sulla stampante attualmente selezionata. L'interfaccia IPrintDialogServices è utile anche per le applicazioni che creano pagine aggiuntive per seguire la pagina Generale del foglio delle proprietà Print . Le procedure della finestra di dialogo per le pagine aggiuntive possono chiamare metodi IPrintDialogServices .