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 MFC EXE mediante la Creazione guidata applicazione MFC, quindi modificare l'applicazione per supportare il contenimento del documento attivo.
Creazione di un'applicazione contenitore di documenti attivi
Dal menu File, fare clic su Progettodal sottomenu Nuovo.
Dal riquadro sinistro, fare click sul tipo di progetto Visual C++.
Selezionare Applicazione MFC nel riquadro di destra.
Denominare il progetto MyProj, scegliere OK.
Selezionare la pagina Supporto documenti compositi.
Selezionare l'opzione Contenitore/Server completo o Contenitore.
Selezionare la casella di controllo Contenitore documento attivo.
Scegliere Fine.
Quando la Creazione guidata applicazione MFC finisce la generazione dell'applicazione, aprire i file seguenti in Esplora soluzioni:
- MyProjview.cpp
In MyProjview.cpp, apportare le seguenti modifiche:
Sostituire il contenuto della funzione nella sezione CMyProjView::OnPreparePrinting con il codice seguente:
if (!CView::OnPreparePrinting(pInfo)) return FALSE; if (!COleDocObjectItem::OnPreparePrinting(this, pInfo)) return FALSE; return TRUE;
OnPreparePrinting fornisce il supporto di stampa. Questo codice sostituisce DoPreparePrinting, ovvero la preparazione predefinita di stampa.
Il contenimento del documento attivo fornisce uno schema migliore di stampa:
È possibile chiamare prima il documento attivo tramite la relativa interfaccia IPrinte dire ad esso di stamparsi. È diverso dal contenimento OLE precedente, in cui il contenitore doveva eseguire il rendering di un'immagine dell'elemento contenuto nell'oggetto CDCdella stampante.
Se questo fallisce, dire all'elemento contenuto di stamparsi tramite la relativa interfaccia IOleCommandTarget
Se fallisce, eseguire il rendering dell'elemento.
Le funzioni membro statiche COleDocObjectItem::OnPrint e COleDocObjectItem::OnPreparePrinting, come implementato nel codice precedente, gestiscono questo schema di stampa migliore.
Aggiungere qualsiasi implementazione personalizzata e compilare l'applicazione.