Перетаскивание
перетаскивание ссылается на передачу данных, в которой используется мышь или другое указывающее устройство, чтобы указать источник данных и его назначение. В обычной операции перетаскивания пользователь выбирает объект для передачи путем перемещения указателя мыши на него и удерживая на ней левую или другую кнопку, назначенную для этой цели. Продолжая удерживать кнопку, пользователь инициирует передачу путем перетаскивания объекта в место назначения, который может быть любым контейнером OLE. Перетаскивание обеспечивает точно те же функции, что и копирование и вставка буфера обмена OLE, но добавляет визуальные отзывы и устраняет необходимость в меню. На самом деле, если приложение поддерживает копирование и вставку буфера обмена, для поддержки перетаскивания требуется немного дополнительных.
Во время операции перетаскивания OLE используются три отдельных фрагмента кода.
Перетаскивание исходного кода | Реализация и использование |
---|---|
интерфейс IDropSource |
Реализуется объектом, содержащим перетаскиваемые данные, называемым источником перетаскивания. |
интерфейс IDropTarget |
Реализуется объектом, предназначенным для принятия удаления, называемого целевым объектом целевого объекта. |
функция DoDragDrop |
Реализован OLE и используется для запуска операции перетаскивания. После выполнения операции он упрощает обмен данными между источником перетаскивания и целевым объектом перетаскивания. |
Интерфейсы IDropSource и интерфейсы IDropTar get можно реализовать в контейнере или в приложении объектов. Роль источника перетаскивания или целевого объекта перетаскивания не ограничивается одним типом приложения OLE.
Функция OLE DoDragDrop реализует цикл, отслеживающий перемещение мыши и клавиатуры до тех пор, пока не будет отменено перетаскивание. DoDragDrop является ключевой функцией в процессе перетаскивания, упрощая обмен данными между источником перетаскивания и целевым объектом перетаскивания.
Во время операции перетаскивания для пользователя можно отобразить три типа обратной связи.
Тип обратной связи | Описание |
---|---|
Отзывы о источнике |
Предоставленный источником перетаскивания, исходный отзыв указывает, что данные перетаскиваются и не изменяются во время перетаскивания. Как правило, данные выделены для сигнала о том, что он был выбран. |
Обратная связь указателя |
Предоставленный источником перетаскивания, обратная связь указателя указывает, что происходит, если мышь выпущена в любой момент. Обратная связь указателя постоянно изменяется по мере перемещения мыши и /или нажатия клавиши модификатора. Например, если указатель перемещается в окно, которое не может принять удаление, указатель изменяется на символ "недопустимый". |
Целевая обратная связь |
При условии целевого объекта удаления целевая обратная связь указывает, где происходит удаление. |
Дополнительные сведения см. в разделе Перетаскивание обязанностей источника.