Freigeben über


Zwischenablage: Daten kopieren und einfügen

In diesem Thema werden die Mindestaufgaben beschrieben, die zum Implementieren des Kopierens in die Und Einfügen aus der Zwischenablage in Ihrer OLE-Anwendung erforderlich sind. 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

  1. 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 ein COleDataSource Objekt für die Daten.

  2. Rufen Sie die Memberfunktion des CopyToClipboard ausgewählten Elements auf.

  3. Wenn der Benutzer einen Ausschneiden-Vorgang anstelle eines Kopiervorgangs ausgewählt hat, löschen Sie die ausgewählten Daten aus Ihrer Anwendung.

Ein Beispiel für diese Sequenz finden Sie OnEditCutOnEditCopy in den MFC OLE-Beispielprogrammen OCLIENT und HIERSVR. Beachten Sie, dass diese Beispiele Standard einen Zeiger auf die aktuell ausgewählten Daten enthalten, 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

  1. Implementieren Sie OnEditPaste in Ihrer Ansichtsklasse, um Benutzer zu behandeln, die die Option "Einfügen" im Menü "Bearbeiten" auswählen.

  2. Erstellen Sie in der OnEditPaste Funktion ein COleDataObject Objekt, und rufen Sie dessen AttachClipboard Memberfunktion auf, um dieses Objekt mit den Daten in der Zwischenablage zu verknüpfen.

  3. Rufen Sie auf COleDataObject::IsDataAvailable , um zu überprüfen, ob ein bestimmtes Format verfügbar ist.

    Alternativ können Sie nach COleDataObject::BeginEnumFormats anderen Formaten suchen, bis Sie eines für Ihre Anwendung am besten geeignet finden.

  4. 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 Standard Vorteil der Trennung 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 Ihrer Anwendung abgelegt werden. Wie in OCLIENT und HIERSVR kann Ihre OnDrop Funktion auch den Code aufrufen DoPasteItem, der zum Implementieren von Einfügevorgängen geschrieben wurde.

Informationen zum Behandeln der Option "Inhalte einfügen" im Menü "Bearbeiten" finden Sie in den Themendialogfeldern in OLE.

Was möchten Sie mehr über

Siehe auch

Zwischenablage: Verwenden des OLE-Zwischenablagemechanismus