Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
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
Initialisieren Sie die OLE-Bibliotheken, indem Sie
AfxOleInitin derInitInstance-Memberfunktion aufrufen.Rufen Sie
CDocTemplate::SetContainerInfoanInitInstance, 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
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
OnDrawFunktion muss alle OLE-Elemente zeichnen.Überschreiben
IsSelected, um zu überprüfen, ob das an ihn übergebene Element derzeit ausgewählt ist.Implementieren Sie einen
OnInsertObjectMeldungshandler, um das Dialogfeld " Objekt einfügen " anzuzeigen.Implementieren Sie einen
OnSetFocusNachrichtenhandler, um den Fokus von der Ansicht auf ein aktives eingebettetes OLE-Element zu übertragen.Implementieren Sie einen
OnSizeNachrichtenhandler, 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
Leiten Sie eine Klasse von COleClientItem ab. Objekte dieser Klasse stellen Elemente dar, die in Ihr OLE-Dokument eingebettet oder verknüpft wurden.
Überschreiben Sie
OnChangeOnChangeItemPosition, 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.