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


Перетаскивание

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

Во время операции перетаскивания OLE используются три отдельных фрагмента кода.

Перетаскивание исходного кода Реализация и использование
интерфейс IDropSource
Реализуется объектом, содержащим перетаскиваемые данные, называемым источником перетаскивания.
интерфейс IDropTarget
Реализуется объектом, предназначенным для принятия удаления, называемого целевым объектом целевого объекта.
функция DoDragDrop
Реализован OLE и используется для запуска операции перетаскивания. После выполнения операции он упрощает обмен данными между источником перетаскивания и целевым объектом перетаскивания.

Интерфейсы IDropSource и интерфейсы IDropTar get можно реализовать в контейнере или в приложении объектов. Роль источника перетаскивания или целевого объекта перетаскивания не ограничивается одним типом приложения OLE.

Функция OLE DoDragDrop реализует цикл, отслеживающий перемещение мыши и клавиатуры до тех пор, пока не будет отменено перетаскивание. DoDragDrop является ключевой функцией в процессе перетаскивания, упрощая обмен данными между источником перетаскивания и целевым объектом перетаскивания.

Во время операции перетаскивания для пользователя можно отобразить три типа обратной связи.

Тип обратной связи Описание
Отзывы о источнике
Предоставленный источником перетаскивания, исходный отзыв указывает, что данные перетаскиваются и не изменяются во время перетаскивания. Как правило, данные выделены для сигнала о том, что он был выбран.
Обратная связь указателя
Предоставленный источником перетаскивания, обратная связь указателя указывает, что происходит, если мышь выпущена в любой момент. Обратная связь указателя постоянно изменяется по мере перемещения мыши и /или нажатия клавиши модификатора. Например, если указатель перемещается в окно, которое не может принять удаление, указатель изменяется на символ "недопустимый".
Целевая обратная связь
При условии целевого объекта удаления целевая обратная связь указывает, где происходит удаление.

Дополнительные сведения см. в разделе Перетаскивание обязанностей источника.

передачи данных