Creazione di un'applicazione contenitore di documenti attivi
Il modo più semplice e consigliato per creare un'applicazione contenitore di documenti attivi consiste nel creare un'applicazione contenitore EXE MFC mediante la Creazione guidata applicazione MFC, quindi modificare l'applicazione per supportare il contenimento dei documenti attivi.
Per creare un'applicazione contenitore di documenti attivi
Scegliere Progettodal menu File dal sottomenu Nuovo.
Nel riquadro sinistro fare clic su Tipo di progetto Visual C++ .
Selezionare Applicazione MFC nel riquadro destro.
Assegnare al progetto il nome MyProj, fare clic su OK.
Selezionare la pagina Supporto documenti composti.
Selezionare l'opzione Contenitore o Contenitore/Server completo.
Selezionare la casella di controllo Contenitore documento attivo.
Fare clic su Fine.
Una volta completata la generazione dell'applicazione tramite la Creazione guidata applicazione MFC, aprire i seguenti file in Esplora soluzioni:
- MyProjview.cpp
In MyProjview.cpp apportare le modifiche seguenti:
In
CMyProjView::OnPreparePrinting
sostituire il contenuto della funzione con il seguente codice:if (!CView::OnPreparePrinting(pInfo)) return FALSE; if (!COleDocObjectItem::OnPreparePrinting(this, pInfo)) return FALSE; return TRUE;
OnPreparePrinting
fornisce il supporto di stampa. Questo codice sostituisceDoPreparePrinting
, ovvero la preparazione predefinita alla stampa.Il contenimento del documento attivo fornisce uno schema di stampa avanzato:
È prima possibile chiamare il documento attivo tramite l'interfaccia
IPrint
e indicare a se stesso di stamparsi. Questo comportamento è diverso dal precedente contenimento OLE, in cui il contenitore doveva eseguire il rendering di un'immagine dell'elemento contenuto nell'oggetto stampanteCDC
.In caso di errore, indicare all'elemento contenuto di stamparsi tramite l'interfaccia
IOleCommandTarget
Se l'operazione fallisce, eseguire il rendering dell'elemento.
Le funzioni membro statiche
COleDocObjectItem::OnPrint
eCOleDocObjectItem::OnPreparePrinting
, come implementate nel codice precedente, gestiscono questo schema di stampa avanzato.Aggiungere qualsiasi implementazione personalizzata e compilare l'applicazione.