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