拖放功能

拖放是指使用滑鼠或其他指向裝置來指定數據源及其目的地的數據傳輸。 在一般拖放作業中,用戶選取要傳送的物件,方法是將滑鼠指標移至該物件,並按住左側按鈕或為此用途所指定的一些其他按鈕。 在繼續按住按鈕時,用戶會藉由將 物件拖曳至其目的地來起始傳輸,這可以是任何 OLE 容器。 拖放提供與 OLE 剪貼簿複製和貼上完全相同的功能,但新增視覺回饋並消除功能表的需求。 事實上,如果應用程式支援剪貼簿複製和貼上,則支援拖放所需的額外專案很少。

在 OLE 拖放作業期間,會使用下列三個不同的程式碼片段。

拖放程式代碼來源 實作和使用
IDropSource 介面
由包含拖曳數據的對象實作,稱為 拖曳來源
IDropTarget 介面
由要接受置放的物件實作,稱為 置放目標
DoDragDrop 函式
由 OLE 實作,用來起始拖放作業。 作業進行之後,它可促進拖曳來源與置放目標之間的通訊。

IDropSourceIDropTarget 介面可以在容器或物件應用程式中實作。 拖放目標的角色不限於任何一種類型的 OLE 應用程式。

OLE 函數 DoDragDrop 會實作循環,追蹤滑鼠和鍵盤移動,直到取消拖曳或卸除等時間為止。 DoDragDrop 是拖放程式中的主要功能,可促進拖放來源與置放目標之間的通訊。

在拖放作業期間,可以向用戶顯示三種類型的意見反應。

意見反應的類型 描述
來源意見反應
由拖曳來源提供,來源意見反應會指出正在拖曳數據,而且不會在拖曳過程中變更。 一般而言,數據會反白顯示,以發出已選取的訊號。
指標意見反應
由拖曳來源提供,指標意見反應會指出滑鼠在任何指定時間放開時會發生什麼情況。 當用戶移動滑鼠和/或按下修飾詞鍵時,指標意見反應會持續變更。 例如,如果指標移至無法接受置放的視窗,指標就會變更為「不允許」符號。
目標意見反應
由置放目標提供,目標意見反應會指出要卸除的位置。

如需詳細資訊,請參閱 拖曳來源責任

資料傳輸