Udostępnij za pośrednictwem


Schowek: kopiowanie i wklejanie danych

W tym temacie opisano minimalną pracę niezbędną do zaimplementowania kopiowania do Schowka i wklejania do schowka w aplikacji OLE. Przed kontynuowaniem zaleca się przeczytanie tematów Dotyczących obiektów danych i źródeł danych (OLE ).

Przed zaimplementowaniem kopiowania lub wklejania należy najpierw udostępnić funkcje do obsługi opcji Kopiuj, Wytnij i Wklej w menu Edycja.

Kopiowanie lub wycinanie danych

Aby skopiować dane do Schowka

  1. Ustal, czy dane do skopiowania są danymi natywnymi, czy też elementem osadzonym lub połączonym.

    • Jeśli dane są osadzone lub połączone, uzyskaj wskaźnik do wybranego COleClientItem obiektu.

    • Jeśli dane są natywne, a aplikacja jest serwerem, utwórz nowy obiekt pochodzący z COleServerItem zawierających wybrane dane. W przeciwnym razie utwórz COleDataSource obiekt dla danych.

  2. Wywołaj funkcję składową wybranego elementu CopyToClipboard .

  3. Jeśli użytkownik wybrał operację wycinania zamiast operacji kopiowania, usuń wybrane dane z aplikacji.

Aby zobaczyć przykład tej sekwencji, zobacz OnEditCut funkcje i OnEditCopy w przykładowych programach MFC OLE OCLIENT i HIERSVR. Należy pamiętać, że te przykłady obsługują wskaźnik do aktualnie wybranych danych, więc krok 1 został już ukończony.

Wklejanie danych

Wklejanie danych jest bardziej skomplikowane niż kopiowanie, ponieważ musisz wybrać format, który ma być używany podczas wklejania danych do aplikacji.

Aby wkleić dane ze Schowka

  1. W klasie widoków zaimplementuj obsługę OnEditPaste użytkowników wybierających opcję Wklej z menu Edytuj.

  2. OnEditPaste W funkcji utwórz COleDataObject obiekt i wywołaj jego AttachClipboard funkcję składową, aby połączyć ten obiekt z danymi w Schowku.

  3. Wywołaj metodę COleDataObject::IsDataAvailable , aby sprawdzić, czy jest dostępny określony format.

    Alternatywnie możesz użyć COleDataObject::BeginEnumFormats polecenia , aby wyszukać inne formaty, dopóki nie znajdziesz jednego najbardziej odpowiedniego dla aplikacji.

  4. Wykonaj wklejanie formatu.

Aby zapoznać się z przykładem tego działania, zobacz implementację OnEditPaste funkcji składowych w klasach widoków zdefiniowanych w przykładowych programach MFC OLE OCLIENT i HIERSVR.

Napiwek

Główną zaletą oddzielenia operacji wklejania do własnej funkcji jest to, że ten sam kod wklejania może być używany, gdy dane są porzucane w aplikacji podczas operacji przeciągania i upuszczania. Podobnie jak w przypadku OCLIENT i HIERSVR, funkcja OnDrop może również wywołać DoPasteItemmetodę , ponownie za pomocą kodu napisanego w celu zaimplementowania operacji wklejania.

Aby obsłużyć opcję Wklej specjalne w menu Edycja, zobacz okna dialogowe tematu w ole.

Co chcesz dowiedzieć się więcej o

Zobacz też

Schowek: korzystanie z mechanizmu schowka OLE