從影像清單拖曳影像
CImageList 包含在畫面上拖曳影像的函式。 拖曳函式平滑且沒有游標閃爍地移動彩色影像。 遮罩影像和未遮罩影像都可以拖曳。
BeginDrag 成員函式會開始拖曳作業。 參數包含要拖曳的影像的索引和在影像中作用點的位置。 作用點是拖曳函式辨認為影像的實際螢幕位置的單一像素。 一般而言,應用程式設定作用點,以便使其與滑鼠游標的作用點相符。 DragMove 成員函式會將影像移至新位置。
DragEnter 成員函式會設定拖曳影像在視窗中的初始位置,並在位置繪製影像。 參數包含要在其中繪製影像的視窗的指標,以及指定視窗內的初始位置座標的點。 座標是相對於視窗左上角,而非工作區。 這也適用於接受座標做為參數的所有影像拖曳函式。 這表示指定座標時,您必須補償視窗項目的寬度,例如框線、標題列和功能表列。 如果您在呼叫 DragEnter
時指定 Null 視窗控制碼,則拖曳函式會在與桌面視窗相關聯的裝置內容中繪製影像,而座標會相對於畫面左上角。
DragEnter
在拖曳作業期間鎖定特定視窗的其他更新。 如果您需要在拖曳作業期間執行任何繪圖,例如醒目提示拖放作業的目標,您可以使用 DragLeave 成員函式暫時隱藏拖曳的影像 。 您也可以使用 DragShowNoLock 成員函式。
當您完成拖曳影像時,請呼叫 EndDrag 。
SetDragCursorImage 成員函式會結合指定的影像(通常是滑鼠游標影像)與目前的拖曳影像,以建立新的拖曳影像。 由於拖曳函式在拖曳作業期間使用新的影像,因此您應該使用 Windows ShowCursor 函式在呼叫 SetDragCursorImage
之後隱藏實際的滑鼠游標。 否則,系統可能會在拖曳作業期間出現兩個滑鼠游標。
當應用程式呼叫 BeginDrag
時,系統會建立暫存、內部影像清單,並將指定的影像拖曳複製到內部清單。 您可以使用 GetDragImage 成員函式,擷取暫存拖曳影像清單的 指標。 函式也會擷取目前拖曳位置以及拖曳影像相對於拖曳位置的位移。