Udostępnij przez


Schowek: Kopiowanie i Wklejanie Danych

W tym temacie opisano minimalną pracę niezbędną do zaimplementowania kopiowania do Schowka i wklejania ze 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 odwołanie do wybranego obiektu COleClientItem.

    • 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 funkcje OnEditCut i OnEditCopy w przykładowych programach MFC OLE OCLIENT i HIERSVR. Należy pamiętać, że te przykłady zachowują wskaźnik do aktualnie wybranych danych, zatem 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 swojej klasie widoku zaimplementuj OnEditPaste do obsługi użytkowników wybierających opcję Wklej z menu Edytuj.

  2. Utwórz w funkcji obiekt OnEditPaste i wywołaj jego funkcję składową COleDataObject, 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.

Wskazówka

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ć funkcję DoPasteItem, korzystając ponownie z kodu napisanego do implementacji operacji wklejania.

Aby obsłużyć opcję „Wklej specjalne” w menu „Edycja”, zobacz temat Okna dialogowe w OLE.

Co chcesz dowiedzieć się więcej o

Zobacz także

Schowek: korzystanie z mechanizmu schowka OLE