Contenitori: implementazione di un contenitore

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

  1. Inizializzare le librerie OLE chiamando AfxOleInit nella InitInstance funzione membro.

  2. Chiamare CDocTemplate::SetContainerInfo in InitInstance per assegnare le risorse del menu e dell'acceleratore usate quando un elemento incorporato viene attivato sul posto. Per altre informazioni su questo argomento, vedere Attivazione.

Queste funzionalità vengono fornite automaticamente quando si usa la Creazione guidata applicazione MFC per creare un'applicazione contenitore. Vedere Creazione di un programma EXE MFC.

Per preparare la classe di visualizzazione

  1. Tenere traccia degli elementi selezionati mantenendo un puntatore o un elenco di puntatori se si supporta la selezione multipla, agli elementi selezionati. La OnDraw funzione deve disegnare tutti gli elementi OLE.

  2. Eseguire l'override IsSelected per verificare se l'elemento passato è attualmente selezionato.

  3. Implementare un OnInsertObject gestore di messaggi per visualizzare la finestra di dialogo Inserisci oggetto .

  4. Implementare un OnSetFocus gestore di messaggi per trasferire lo stato attivo dalla visualizzazione a un elemento ole incorporato attivo sul posto.

  5. Implementare un OnSize gestore di messaggi per informare un elemento incorporato OLE che deve modificare il rettangolo in modo da riflettere la modifica delle dimensioni della visualizzazione 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

  1. Derivare una classe da COleClientItem. Gli oggetti di questa classe rappresentano gli elementi incorporati o collegati al documento OLE.

  2. Eseguire l'override di OnChange, OnChangeItemPositione OnGetItemPosition. Queste funzioni gestiscono il ridimensionamento, il posizionamento e la modifica di elementi incorporati e collegati.

La procedura guidata dell'applicazione deriva la classe, ma probabilmente sarà necessario eseguire l'override e le altre funzioni elencate OnChange 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 sul posto 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 altre informazioni, vedere Trascinamento e rilascio OLE.

  • Collegamenti a oggetti incorporati o a applicazioni contenitore/server combinate.

    Per altre informazioni, vedere Contenitori: Funzionalità avanzate.

Vedi anche

Contenitori
Contenitori: elementi client