Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieses Thema beschreibt den Mindestaufwand, der für die Implementierung des Kopierens in die Zwischenablage und des Einfügens aus der Zwischenablage in Ihrer OLE-Anwendung erforderlich ist. Es wird empfohlen, die Themen "Data Objects and Data Sources" (OLE) vor dem Fortfahren zu lesen.
Bevor Sie kopieren oder einfügen können, müssen Sie zunächst Funktionen bereitstellen, um die Optionen "Kopieren", "Ausschneiden" und "Einfügen" im Menü "Bearbeiten" zu behandeln.
Kopieren oder Ausschneiden von Daten
So kopieren Sie Daten in die Zwischenablage
Bestimmen Sie, ob es sich bei den zu kopierenden Daten um systemeigene Daten oder um ein eingebettetes oder verknüpftes Element handelt.
Wenn die Daten eingebettet oder verknüpft sind, rufen Sie einen Zeiger auf das
COleClientItem
objekt ab, das ausgewählt wurde.Wenn die Daten systemintern sind und die Anwendung ein Server ist, erstellen Sie ein neues Objekt, das von
COleServerItem
den ausgewählten Daten abgeleitet wurde. Erstellen Sie andernfalls einCOleDataSource
Objekt für die Daten.
Rufen Sie die
CopyToClipboard
-Funktion des ausgewählten Elements auf.Wenn der Benutzer einen Ausschneiden-Vorgang anstelle eines Kopiervorgangs ausgewählt hat, löschen Sie die ausgewählten Daten aus Ihrer Anwendung.
Um ein Beispiel für diese Sequenz zu sehen, schauen Sie sich die Funktionen OnEditCut
und OnEditCopy
in den MFC OLE-Beispielprogrammen OCLIENT und HIERSVR an. Beachten Sie, dass diese Beispiele einen Zeiger auf die aktuell ausgewählten Daten beibehalten, sodass Schritt 1 bereits abgeschlossen ist.
Einfügen von Daten
Das Einfügen von Daten ist komplizierter als das Kopieren, da Sie das Format auswählen müssen, das beim Einfügen der Daten in Ihre Anwendung verwendet werden soll.
So fügen Sie Daten aus der Zwischenablage ein
Implementieren Sie
OnEditPaste
in Ihrer Ansichtsklasse, um Benutzer zu behandeln, die die Option "Einfügen" im Menü "Bearbeiten" auswählen.Erstellen Sie in der
OnEditPaste
Funktion einCOleDataObject
Objekt und rufen Sie dessenAttachClipboard
Memberfunktion auf, um dieses Objekt mit den Daten in der Zwischenablage zu verknüpfen.Rufen Sie auf
COleDataObject::IsDataAvailable
, um zu überprüfen, ob ein bestimmtes Format verfügbar ist.Alternativ können Sie
COleDataObject::BeginEnumFormats
verwenden, um nach anderen Formaten zu suchen, bis Sie eines finden, das am besten für Ihre Anwendung geeignet ist.Führen Sie das Einfügen des Formats aus.
Ein Beispiel für die Funktionsweise finden Sie in der Implementierung der OnEditPaste
Memberfunktionen in den Ansichtsklassen, die in den MFC OLE-Beispielprogrammen OCLIENT und HIERSVR definiert sind.
Tipp
Der Hauptvorteil beim Trennen des Einfügevorgangs in eine eigene Funktion besteht darin, dass derselbe Einfügecode verwendet werden kann, wenn Daten während eines Drag-and-Drop-Vorgangs in Der Anwendung abgelegt werden. Wie in OCLIENT und HIERSVR kann Ihre OnDrop
-Funktion auch DoPasteItem
aufrufen und so den Code wiederverwenden, der für die Implementierung von Einfügeoperationen geschrieben wurde.
Um die Option Einfügen Spezial im Menü Bearbeiten zu handhaben, lesen Sie das Thema Dialogfelder in OLE.
Was möchten Sie mehr über
Siehe auch
Zwischenablage: Verwendung des OLE-Zwischenablage-Mechanismus