Поделиться через


Буфер обмена. Копирование и вставящ данных

Этот раздел описывает минимально необходимый для реализации рабочих, копирование и вставить из буфера обмена в пользовательском приложении OLE.Рекомендуется изучить инструкции Объекты данных и источников данных (OLE) перед тем как продолжить.

Прежде чем приступить к реализации или копирование или вставить, сначала необходимо предоставить функции для обработки копию, параметры снизить и вставить в меню Правка.

Копирование данных или вырезывания

Чтобы скопировать данные в буфер обмена

  1. Укажите, следует ли быть скопированы данные или собственные данные внедренный или связанный элемент.

    • Если внедренных или связанные данные, получите указатель на объект COleClientItem, который был выбран.

    • Если данные и приложение сервер, то собственный создайте новый объект, производный от COleServerItem, содержащий выбранные данные.В противном случае создайте объект COleDataSource данных.

  2. Вызовите функцию-член CopyToClipboard выбранного элемента.

  3. Если пользователь выбрал операция " вырезать " вместо операции копирования, то удалите выбранные данные из приложения.

Чтобы просмотреть пример этой последовательности, см. в разделе features OnEditCut и OnEditCopy в примерах программы ObjectName и OLE GlobalUnlock MFC.Обратите внимание, что эти образцы поддерживают указатель в настоящее время выборочным данным, что шаг 1 уже завершен.

Вставить данные

Вставить данные более сложен, чем копирование его, поскольку необходимо выбрать формат для использования в вставить данные в приложение.

Вставлять данные из буфера обмена

  1. В классе представления, реализуйте OnEditPaste для обработки пользователи при выборе параметра вставить из меню Правка.

  2. В функции OnEditPaste создайте объект COleDataObject и вызовите его функцию-член AttachClipboard чтобы связать этот объект к данным в буфере обмена.

  3. Вызовите COleDataObject::IsDataAvailable чтобы проверить, является ли указанный формат доступен.

    Кроме того, можно использовать COleDataObject::BeginEnumFormats для поиска другие форматы до тех пор, пока не найдете одно больше всего одетое к приложению.

  4. Запустите команду вставить формата.

Пример того, как это работает см. в разделе реализация функции-члены OnEditPaste в классах представления, определенных в примерах программы ObjectName и OLE GlobalUnlock MFC.

СоветСовет

Главным преимуществом разделяя операции вставить в собственную функцию, что один и тот же код " вставить " можно использовать, когда данные удаляются в приложении во время операции перетаскивания.Как в OCLIENT и HIERSVR, функция OnDrop может также вызывать DoPasteItem, повторно используя код, написанный на операции вставить ".

, Чтобы обрабатывать параметр особый вариант в меню " Правка " см. в разделе диалоговые окна в OLE.

2ca18w7k.collapse_all(ru-ru,VS.110).gifДополнительные сведения

См. также

Ссылки

Буфер обмена. С помощью OLE механизм буфера обмена