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


CView::OnDropEx

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

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

Параметры

  • pDataObject
    Указывает на COleDataObject, удалено в целевой объект перетаскивания.

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

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

  • point
    Текущая позиция указателя мыши по оси y относительно клиентской области просмотра.

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

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

Заметки

Реализация по умолчанию не выполнять никаких действий и возвращать фиктивное значение (-1) указывает, что границы должны вызывать обработчик OnDrop.

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

Пользовательское переопределение OnDropEx должно запросить правой кнопки мыши. Можно вызвать GetKeyState или сохранить состояние правой кнопки мыши из обработчика OnDragEnter.

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

    • Просмотрите dropList, чтобы определить эффекты удаления, поддерживаемые источником удаления. Включение только эти действия на всплывающем меню.

    • Используйте SetMenuDefaultItem чтобы задать действие по умолчанию на основе dropDefault.

    • Наконец, выполните действия, показанной выделением пользователя из раскрывающегося меню.

  • Если правая кнопка мыши не вниз, переопределение должно обработать это как стандартный запрос удаления. Используйте эффект удаления, указанный в dropDefault. Кроме того, для переопределения может возвращать фиктивное значение (-1), чтобы показать, что OnDrop обрабатывающий эту операцию удаления.

Используйте pDataObject для проверки COleDataObject для формата данных и удаленных данных буфера обмена в заданной точке.

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

  • Удаление DROPEFFECT_NONE а не было бы разрешено.

  • Операция копирования DROPEFFECT_COPY a была бы выполнена.

  • Операция перемещения DROPEFFECT_MOVE a была бы выполнена.

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

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

Дополнительные сведения об установке по умолчанию команды меню см. в разделе SetMenuDefaultItem в Windows SDK и CMenu::GetSafeHmenu в этом томе.

Требования

Header: afxwin.h

См. также

Ссылки

Класс CView

Диаграмма иерархии

CView::OnDragEnter

CView::OnDragOver

CView::OnDrop

CView::OnDragLeave

COleDropTarget::OnDropEx