Класс COleDropTarget

Предоставляет механизм взаимодействия между окном и библиотеками OLE.

Синтаксис

class COleDropTarget : public CCmdTarget

Участники

Открытые конструкторы

Имя Описание
COleDropTarget::COleDropTarget Формирует объект COleDropTarget.

Открытые методы

Имя Описание
COleDropTarget::OnDragEnter Вызывается при первом вводе курсора в окно.
COleDropTarget::OnDragLeave Вызывается при перетаскивании курсора из окна.
COleDropTarget::OnDragOver Вызывается многократно, когда курсор перетаскивается по окну.
COleDropTarget::OnDragScroll Вызывается, чтобы определить, перетаскивается ли курсор в область прокрутки окна.
COleDropTarget::OnDrop Вызывается при удалении данных в окно обработчиком по умолчанию.
COleDropTarget::OnDropEx Вызывается при удалении данных в окно, начальный обработчик.
COleDropTarget::Register Регистрирует окно в качестве допустимого целевого объекта удаления.
COleDropTarget::Revoke Приводит к тому, что окно перестанет быть допустимым целевым объектом удаления.

Замечания

Создание объекта этого класса позволяет окну принимать данные с помощью механизма перетаскивания OLE.

Чтобы получить окно для принятия команд удаления, сначала необходимо создать объект COleDropTarget класса, а затем вызвать функцию Register с указателем на нужный CWnd объект в качестве единственного параметра.

Дополнительные сведения о операциях перетаскивания с помощью OLE см. в статье перетаскивание OLE.

Иерархия наследования

CObject

CCmdTarget

COleDropTarget

Требования

Заголовок: afxole.h

COleDropTarget::COleDropTarget

Создает объект класса COleDropTarget.

COleDropTarget();

Замечания

Вызов регистрации для связывания этого объекта с окном.

COleDropTarget::OnDragEnter

Вызывается платформой при первом перетаскивании курсора в окно.

virtual DROPEFFECT OnDragEnter(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DWORD dwKeyState,
    CPoint point);

Параметры

pWnd
Указывает на окно, в который вводится курсор.

pDataObject
Указывает на объект данных, содержащий данные, которые можно удалить.

dwKeyState
Содержит состояние ключей модификатора. Это сочетание любого числа следующих: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_МБ UTTON и MK_RBUTTON.

point
Содержит текущее расположение курсора в координатах клиента.

Возвращаемое значение

Эффект, который приведет к попытке удаления в расположении, указанном в точке. Это может быть одно или несколько следующих элементов:

  • DROPEFFECT_NONE Не будет разрешено удаление.

  • DROPEFFECT_COPY будет выполнена операция копирования.

  • DROPEFFECT_MOVE будет выполнена операция перемещения.

  • DROPEFFECT_LINK будет установлена ссылка из удаленных данных на исходные данные.

  • DROPEFFECT_SCROLL операция прокрутки перетаскивания происходит или происходит в целевом объекте.

Замечания

Переопределите эту функцию, чтобы разрешить операции удаления в окне. Реализация по умолчанию вызывает CView::OnDragEnter, которая просто возвращает DROPEFFECT_NONE по умолчанию.

Дополнительные сведения см. в разделе IDropTarget::D ragEnter в пакете SDK для Windows.

COleDropTarget::OnDragLeave

Вызывается платформой, когда курсор покидает окно во время операции перетаскивания.

virtual void OnDragLeave(CWnd* pWnd);

Параметры

pWnd
Указывает на окно, в результате чего курсор уходит.

Замечания

Переопределите эту функцию, если требуется специальное поведение, когда операция перетаскивания покидает указанное окно. Реализация этой функции по умолчанию вызывает CView::OnDragLeave.

Дополнительные сведения см. в разделе IDropTarget::D ragLeave в пакете SDK для Windows.

COleDropTarget::OnDragOver

Вызывается платформой при перетаскивании курсора по окну.

virtual DROPEFFECT OnDragOver(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DWORD dwKeyState,
    CPoint point);

Параметры

pWnd
Указывает на окно, на которое выполняется курсор.

pDataObject
Указывает на объект данных, содержащий данные, которые нужно удалить.

dwKeyState
Содержит состояние ключей модификатора. Это сочетание любого числа следующих: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_МБ UTTON и MK_RBUTTON.

point
Содержит текущее расположение курсора в координатах клиента.

Возвращаемое значение

Эффект, который приведет к попытке удаления в расположении, указанном в точке. Это может быть одно или несколько следующих элементов:

  • DROPEFFECT_NONE Не будет разрешено удаление.

  • DROPEFFECT_COPY будет выполнена операция копирования.

  • DROPEFFECT_MOVE будет выполнена операция перемещения.

  • DROPEFFECT_LINK будет установлена ссылка из удаленных данных на исходные данные.

  • DROPEFFECT_SCROLL Указывает, что операция прокрутки перетаскивания происходит или происходит в целевом объекте.

Замечания

Эта функция должна быть переопределена, чтобы разрешить операции удаления в окне. Реализация этой функции по умолчанию вызывает CView::OnDragOver, которая возвращает DROPEFFECT_NONE по умолчанию. Так как эта функция вызывается часто во время операции перетаскивания, она должна быть оптимизирована как можно больше.

Дополнительные сведения см. в разделе IDropTarget::D ragOver в пакете SDK для Windows.

Пример

DROPEFFECT COleContainerView::OnDragOver(COleDataObject* pDataObject,
   DWORD dwKeyState, CPoint point)
{
   UNREFERENCED_PARAMETER(pDataObject);
   UNREFERENCED_PARAMETER(point);

   DROPEFFECT de = DROPEFFECT_NONE;
   //Determine the type of operation
   if ((dwKeyState & MK_SHIFT) && (dwKeyState & MK_CONTROL))
      de = DROPEFFECT_LINK;
   else if (dwKeyState & MK_CONTROL)
      de = DROPEFFECT_COPY;
   else if (dwKeyState & MK_SHIFT)
      de = DROPEFFECT_MOVE;
   return de;
}

COleDropTarget::OnDragScroll

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

virtual DROPEFFECT OnDragScroll(
    CWnd* pWnd,
    DWORD dwKeyState,
    CPoint point);

Параметры

pWnd
Указывает на окно, на который в данный момент выполняется курсор.

dwKeyState
Содержит состояние ключей модификатора. Это сочетание любого числа следующих: MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_МБ UTTON и MK_RBUTTON.

point
Содержит расположение курсора в пикселях относительно экрана.

Возвращаемое значение

Эффект, который приведет к попытке удаления в расположении, указанном в точке. Это может быть одно или несколько следующих элементов:

  • DROPEFFECT_NONE Не будет разрешено удаление.

  • DROPEFFECT_COPY будет выполнена операция копирования.

  • DROPEFFECT_MOVE будет выполнена операция перемещения.

  • DROPEFFECT_LINK будет установлена ссылка из удаленных данных на исходные данные.

  • DROPEFFECT_SCROLL Указывает, что операция прокрутки перетаскивания происходит или происходит в целевом объекте.

Замечания

Переопределите эту функцию, если вы хотите предоставить специальное поведение для этого события. Реализация этой функции по умолчанию вызывает CView::OnDragScroll, которая возвращает DROPEFFECT_NONE и прокручивает окно при перетаскивании курсора в область прокрутки по умолчанию внутри границы окна.

COleDropTarget::OnDrop

Вызывается платформой при возникновении операции удаления.

virtual BOOL OnDrop(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DROPEFFECT dropEffect,
    CPoint point);

Параметры

pWnd
Указывает на окно, на который в данный момент выполняется курсор.

pDataObject
Указывает на объект данных, содержащий данные, которые нужно удалить.

dropEffect
Эффект, выбранный пользователем для операции удаления. Это может быть одно или несколько следующих элементов:

  • DROPEFFECT_COPY будет выполнена операция копирования.

  • DROPEFFECT_MOVE будет выполнена операция перемещения.

  • DROPEFFECT_LINK будет установлена ссылка из удаленных данных на исходные данные.

point
Содержит расположение курсора в пикселях относительно экрана.

Возвращаемое значение

Ненулевое значение, если падение успешно; в противном случае — 0.

Замечания

Платформа сначала вызывает OnDropEx. OnDropEx Если функция не обрабатывает удаление, платформа вызывает эту функцию-член. OnDrop Как правило, приложение переопределяет OnDropEx в классе представления для обработки перетаскивания и перетаскивания правой кнопки мыши. Как правило, класс представления OnDrop используется для обработки простого перетаскивания.

Реализация по умолчанию вызывает CView::OnDrop, которая просто возвращает ЗНАЧЕНИЕ FALSE по умолчаниюCOleDropTarget::OnDrop.

Дополнительные сведения см. в разделе IDropTarget::D rop в пакете SDK для Windows.

COleDropTarget::OnDropEx

Вызывается платформой при возникновении операции удаления.

virtual DROPEFFECT OnDropEx(
    CWnd* pWnd,
    COleDataObject* pDataObject,
    DROPEFFECT dropDefault,
    DROPEFFECT dropList,
    CPoint point);

Параметры

pWnd
Указывает на окно, на который в данный момент выполняется курсор.

pDataObject
Указывает на объект данных, содержащий данные, которые нужно удалить.

dropDefault
Эффект, выбранный пользователем для операции удаления по умолчанию на основе текущего состояния ключа. Это может быть DROPEFFECT_NONE. Эффекты удаления рассматриваются в разделе "Примечания".

dropList
Список эффектов удаления, поддерживаемых источником перетаскивания. Значения эффектов удаления можно объединить с помощью побитовой операции OR (|). Эффекты удаления рассматриваются в разделе "Примечания".

point
Содержит расположение курсора в пикселях относительно экрана.

Возвращаемое значение

Эффект удаления, который привел к попытке удаления в расположении, указанном в точке. Эффекты удаления рассматриваются в разделе "Примечания".

Замечания

Платформа сначала вызывает эту функцию. Если он не обрабатывает удаление, платформа вызывает OnDrop. Как правило, вы переопределите OnDropEx в классе представления для поддержки перетаскивания правой кнопки мыши. Как правило, класс представления OnDrop используется для обработки случаев поддержки простого перетаскивания.

Реализация по умолчанию COleDropTarget::OnDropEx вызывает CView::OnDropEx. По умолчанию CView::OnDropEx просто возвращает фиктивное значение, указывающее , что функция-член OnDrop должна вызываться.

Эффекты удаления описывают действие, связанное с операцией удаления. См. следующий список эффектов удаления:

  • DROPEFFECT_NONE Не будет разрешено удаление.

  • DROPEFFECT_COPY будет выполнена операция копирования.

  • DROPEFFECT_MOVE будет выполнена операция перемещения.

  • DROPEFFECT_LINK будет установлена ссылка из удаленных данных на исходные данные.

  • DROPEFFECT_SCROLL Указывает, что операция прокрутки перетаскивания происходит или происходит в целевом объекте.

Дополнительные сведения см. в разделе IDropTarget::D rop в пакете SDK для Windows.

COleDropTarget::Register

Вызовите эту функцию, чтобы зарегистрировать окно с помощью библиотек DLL OLE в качестве допустимого целевого объекта удаления.

BOOL Register(CWnd* pWnd);

Параметры

pWnd
Указывает на окно, которое должно быть зарегистрировано в качестве целевого объекта удаления.

Возвращаемое значение

Ненулевое значение, если регистрация выполнена успешно; в противном случае — 0.

Замечания

Эта функция должна вызываться для принятия операций удаления.

Дополнительные сведения см. в разделе RegisterDragDrop в пакете SDK для Windows.

COleDropTarget::Revoke

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

virtual void Revoke();

Замечания

Эта функция вызывается автоматически из обработчика OnDefx для зарегистрированного окна, поэтому обычно не требуется явно вызывать эту функцию.

Дополнительные сведения см. в разделе "ОтзывDragDrop " в пакете SDK для Windows.

См. также

Пример HIERSVR MFC
Пример OCLIENT MFC
Класс CCmdTarget
Диаграмма иерархии
Класс COleDropSource