Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo riepiloga la procedura per l'implementazione di un contenitore e fa riferimento ad altri articoli che forniscono spiegazioni più dettagliate sull'implementazione dei contenitori. Vengono inoltre elencate alcune funzionalità OLE facoltative che è possibile implementare e gli articoli che descrivono queste funzionalità.
Per preparare la classe derivata da CWinApp
Inizializza le librerie OLE chiamando
AfxOleInitnella funzione membroInitInstance.Chiamare
CDocTemplate::SetContainerInfoinInitInstanceper assegnare le risorse del menu e dell'acceleratore utilizzate quando un elemento incorporato viene attivato in loco. Per altre informazioni su questo argomento, vedere Attivazione.
Queste caratteristiche vengono fornite automaticamente quando si usa la Creazione guidata delle applicazioni MFC per creare un'applicazione contenitore. Vedere Creazione di un programma EXE MFC.
Per preparare la classe di visualizzazione
Tenere traccia degli elementi selezionati mantenendo un puntatore o un elenco di puntatori se si supporta la selezione multipla, agli elementi selezionati. La
OnDrawfunzione deve disegnare tutti gli elementi OLE.Eseguire l'override
IsSelectedper verificare se l'elemento passato è attualmente selezionato.Implementare un
OnInsertObjectgestore di messaggi per visualizzare la finestra di dialogo Inserisci oggetto .Implementare un
OnSetFocusgestore di messaggi per trasferire il focus dalla visualizzazione a un elemento OLE incorporato attivo sul posto.Implementare un
OnSizegestore di messaggi per informare un elemento incorporato OLE che deve modificare il rettangolo in modo da riflettere la modifica delle dimensioni della vista contenitore.
Poiché l'implementazione di queste funzionalità varia notevolmente da un'applicazione all'altra, la procedura guidata dell'applicazione fornisce solo un'implementazione di base. È probabile che sia necessario personalizzare queste funzioni per far funzionare correttamente l'applicazione. Per un esempio, vedere l'esempio contenitore .
Per gestire elementi incorporati e collegati
Derivare una classe da COleClientItem. Gli oggetti di questa classe rappresentano gli elementi incorporati o collegati al documento OLE.
Eseguire l'override di
OnChange,OnChangeItemPosition, eOnGetItemPosition. Queste funzioni gestiscono il ridimensionamento, il posizionamento e la modifica di elementi incorporati e collegati.
La procedura guidata dell'applicazione deriverà la classe per te, ma probabilmente sarà necessario eseguire l'override di OnChange e delle altre funzioni elencate nel passaggio 2 della procedura precedente. Gli scheletri di implementazioni devono essere personalizzati per la maggior parte delle applicazioni, perché queste funzioni vengono implementate in modo diverso da un'applicazione all'altra. Per esempi di questo tipo, vedere gli esempi MFC DRAWCLI e CONTAINER.
Per supportare OLE, è necessario aggiungere una serie di elementi alla struttura di menu dell'applicazione contenitore. Per altre informazioni su questi elementi, vedere Menu e risorse: Aggiunte ai contenitori.
È anche possibile supportare alcune delle funzionalità seguenti nell'applicazione contenitore:
Attivazione diretta durante la modifica di un elemento incorporato.
Per altre informazioni, vedere Attivazione.
Creazione di elementi OLE trascinando e rilasciando una selezione da un'applicazione server.
Per ulteriori informazioni, vedere OLE trascina e rilascia.
Collegamenti a oggetti incorporati o a applicazioni contenitore/server combinate.
Per altre informazioni, vedere Contenitori: Funzionalità avanzate.