Condividi tramite


Stampa foglio delle proprietà

La finestra delle proprietà Stampa è un'interfaccia utente standard che consente all'utente di specificare le proprietà di un determinato processo di stampa. La scheda delle proprietà è costituita da un set di pagine delle proprietà che varia a seconda della stampante o dell'applicazione. Per un subset di pagine delle proprietà standard di Windows, alcune stampanti potrebbero aggiungere pagine delle proprietà specifiche del driver e alcune applicazioni potrebbero aggiungere pagine delle proprietà specifiche dell'applicazione.

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

La figura seguente mostra una tipica finestra delle proprietà Stampa.

finestra delle proprietà della stampante

La maggior parte dei membri della strutturaPRINTDLGEXè identica a quella della strutturaPRINTDLG. Per le descrizioni di come utilizzare i membri della struttura comuni per interagire con i controlli della finestra di dialogo, vedere finestra di dialogo Stampa. Nella parte restante di questo argomento vengono descritte le caratteristiche della finestra delle proprietà di Stampa , che si differenziano dalla finestra di dialogo Stampa .

È possibile personalizzare una finestra delle proprietà stampa specificando un modello di finestra di dialogo personalizzato per la parte inferiore della pagina Generale e specificando ulteriori pagine delle proprietà che seguono la pagina Generale. Per ulteriori informazioni, vedere Personalizzazione della scheda delle proprietà di stampa.

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

La finestra delle proprietà stampa 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.

Nella finestra delle proprietà Stampa viene visualizzato un pulsante di opzione pagina corrente come parte del gruppo di pulsanti di opzione intervallo di pagine. Per controllare il pulsante di opzione pagina corrente, utilizzare i flag PD_CURRENTPAGE e PD_NOCURRENTPAGE nel membro Flags della struttura PRINTDLGEX.

In questa sezione vengono illustrati gli argomenti seguenti.

Personalizzazione della finestra delle proprietà di stampa

È possibile personalizzare la finestra delle proprietà stampa nei modi seguenti:

  • Specificare un modello personalizzato per la parte inferiore della pagina generale. In questo modo è possibile includere controlli aggiuntivi univoci per l'applicazione. La funzione PrintDlgEx usa il modello personalizzato al posto del modello predefinito.
  • Specificare altre pagine delle proprietà per seguire la pagina generale.
  • Specificare un oggetto callback. Per altre informazioni, vedere oggetto Callback per la finestra 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 fornire 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 avere le stesse dimensioni 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 finestra di dialogo Print predefinito vengono definiti nel file Dlgs.h.

  2. Utilizzare la struttura PRINTDLGEX per abilitare il modello nel modo seguente:

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

      -O-

    • Se il modello personalizzato è già in memoria, impostare il flag PD_ENABLEPRINTTEMPLATEHANDLE. Utilizzare il membro hInstance per identificare l'oggetto di 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 i messaggi inviati alla finestra di dialogo personalizzata.

Per fornire pagine di proprietà aggiuntive

  1. Usare la funzione per creare le pagine aggiuntive.

  2. Utilizzare il membro lphPropertyPages della strutturaPRINTDLGEXper specificare una matrice di handle per le pagine aggiuntive.

    Le procedure della finestra di dialogo specificate quando hai creato ogni pagina processano i messaggi inviati alle pagine.

  3. Potrebbe essere necessario fornire 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 utilizzare questa interfaccia per recuperare informazioni sulla stampante attualmente selezionata.

Oggetto Callback per la finestra delle proprietà di stampa

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

L'oggetto callback deve implementare l'interfaccia IPrintDialogCallback. La funzione PrintDlgEx chiama 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 dalla finestra delle proprietà
  • Quando riceve messaggi per la finestra di dialogo figlio nella parte inferiore della pagina generale della finestra delle proprietà

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