Буфер обмена. Копирование и вставящ данных
Этот раздел описывает минимально необходимый для реализации рабочих, копирование и вставить из буфера обмена в пользовательском приложении OLE.Рекомендуется изучить инструкции Объекты данных и источников данных (OLE) перед тем как продолжить.
Прежде чем приступить к реализации или копирование или вставить, сначала необходимо предоставить функции для обработки копию, параметры снизить и вставить в меню Правка.
Копирование данных или вырезывания
Чтобы скопировать данные в буфер обмена
Укажите, следует ли быть скопированы данные или собственные данные внедренный или связанный элемент.
Если внедренных или связанные данные, получите указатель на объект COleClientItem, который был выбран.
Если данные и приложение сервер, то собственный создайте новый объект, производный от COleServerItem, содержащий выбранные данные.В противном случае создайте объект COleDataSource данных.
Вызовите функцию-член CopyToClipboard выбранного элемента.
Если пользователь выбрал операция " вырезать " вместо операции копирования, то удалите выбранные данные из приложения.
Чтобы просмотреть пример этой последовательности, см. в разделе features OnEditCut и OnEditCopy в примерах программы ObjectName и OLE GlobalUnlock MFC.Обратите внимание, что эти образцы поддерживают указатель в настоящее время выборочным данным, что шаг 1 уже завершен.
Вставить данные
Вставить данные более сложен, чем копирование его, поскольку необходимо выбрать формат для использования в вставить данные в приложение.
Вставлять данные из буфера обмена
В классе представления, реализуйте OnEditPaste для обработки пользователи при выборе параметра вставить из меню Правка.
В функции OnEditPaste создайте объект COleDataObject и вызовите его функцию-член AttachClipboard чтобы связать этот объект к данным в буфере обмена.
Вызовите COleDataObject::IsDataAvailable чтобы проверить, является ли указанный формат доступен.
Кроме того, можно использовать COleDataObject::BeginEnumFormats для поиска другие форматы до тех пор, пока не найдете одно больше всего одетое к приложению.
Запустите команду вставить формата.
Пример того, как это работает см. в разделе реализация функции-члены OnEditPaste в классах представления, определенных в примерах программы ObjectName и OLE GlobalUnlock MFC.
Совет |
---|
Главным преимуществом разделяя операции вставить в собственную функцию, что один и тот же код " вставить " можно использовать, когда данные удаляются в приложении во время операции перетаскивания.Как в OCLIENT и HIERSVR, функция OnDrop может также вызывать DoPasteItem, повторно используя код, написанный на операции вставить ". |
, Чтобы обрабатывать параметр особый вариант в меню " Правка " см. в разделе диалоговые окна в OLE.