Teilen über


Container: Implementieren eines Containers

In diesem Artikel werden das Verfahren zur Implementierung eines Containers zusammengefasst, und der Leser/die Leserin wird auf andere Artikel mit ausführlicheren Erläuterungen zur Implementierung von Containern hingewiesen. Außerdem werden einige optionale OLE-Features aufgeführt, die Sie implementieren möchten, und die Artikel, die diese Features beschreiben.

So bereiten Sie Ihre von CWinApp abgeleitete Klasse vor

  1. Initialisieren Sie die OLE-Bibliotheken, indem Sie AfxOleInit in der InitInstance-Memberfunktion aufrufen.

  2. Rufen Sie CDocTemplate::SetContainerInfo anInitInstance, um die Menü- und Beschleunigerressourcen zuzuweisen, die verwendet werden, wenn ein eingebettetes Element direkt aktiviert wird. Weitere Informationen zu diesem Thema finden Sie unter "Aktivierung".

Diese Features werden automatisch bereitgestellt, wenn Sie den MFC-Anwendungs-Assistenten zum Erstellen einer Containeranwendung verwenden. Siehe Erstellen eines MFC EXE-Programms.

So bereiten Sie Ihren View-Kurs vor

  1. Verfolgen Sie ausgewählte Elemente durch das Beibehalten eines Zeigers oder einer Liste von Zeigern auf die ausgewählten Elemente, falls eine Mehrfachauswahl unterstützt wird. Ihre OnDraw Funktion muss alle OLE-Elemente zeichnen.

  2. ÜberschreibenIsSelected , um zu überprüfen, ob das an ihn übergebene Element derzeit ausgewählt ist.

  3. Implementieren Sie einen OnInsertObject Meldungshandler, um das Dialogfeld " Objekt einfügen " anzuzeigen.

  4. Implementieren Sie einen OnSetFocus Nachrichtenhandler, um den Fokus von der Ansicht auf ein aktives eingebettetes OLE-Element zu übertragen.

  5. Implementieren Sie einen OnSize Nachrichtenhandler, um ein OLE eingebettetes Element darüber zu informieren, dass es sein Rechteck ändern muss, um die Größenänderung der umgebenden Ansicht widerzuspiegeln.

Da die Implementierung dieser Features erheblich von einer Anwendung zur nächsten variiert, bietet der Anwendungs-Assistent nur eine einfache Implementierung. Sie müssen diese Funktionen wahrscheinlich anpassen, damit Ihre Anwendung ordnungsgemäß funktioniert. Ein Beispiel hierfür finden Sie im CONTAINER-Beispiel .

So behandeln Sie eingebettete und verknüpfte Elemente

  1. Leiten Sie eine Klasse von COleClientItem ab. Objekte dieser Klasse stellen Elemente dar, die in Ihr OLE-Dokument eingebettet oder verknüpft wurden.

  2. Überschreiben SieOnChangeOnChangeItemPosition, undOnGetItemPosition. Diese Funktionen behandeln Größenanpassung, Positionierung und Ändern eingebetteter und verknüpfter Elemente.

Der Anwendungsassistent leitet die Klasse für Sie ab, aber Sie müssen wahrscheinlich die anderen OnChange Funktionen überschreiben, die in Schritt 2 im vorherigen Verfahren aufgeführt sind. Die Skelettimplementierungen müssen für die meisten Anwendungen angepasst werden, da diese Funktionen von einer Anwendung zur nächsten anders implementiert werden. Beispiele hierfür finden Sie in den MFC-Beispielen DRAWCLI und CONTAINER.

Sie müssen der Menüstruktur der Containeranwendung eine Reihe von Elementen hinzufügen, um OLE zu unterstützen. Weitere Informationen hierzu finden Sie unter Menüs und Ressourcen: Containerzufügungen.

Möglicherweise möchten Sie auch einige der folgenden Features in Ihrer Containeranwendung unterstützen:

  • Aktivierung an Ort und Stelle beim Bearbeiten eines eingebetteten Elements.

    Weitere Informationen finden Sie unter Aktivierung.

  • Erstellen von OLE-Elementen durch Ziehen und Ablegen einer Auswahl aus einer Serveranwendung.

    Weitere Informationen finden Sie bei OLE-Drag-and-Drop.

  • Links zu eingebetteten Objekten oder Kombinationscontainer-/Serveranwendungen.

    Weitere Informationen finden Sie unter Container: Erweiterte Features.

Siehe auch

Behälter
Container: Clientelemente