樹狀目錄控制項拖放作業

樹狀目錄控制項 (CTreeCtrl) 會在使用者開始拖曳項目時,傳送通知。控制項傳送 TVN_BEGINDRAG 通知訊息,當使用者開始拖曳的項目,以滑鼠左鍵和 TVN_BEGINRDRAG 通知訊息,當使用者開始拖曳,以滑鼠右鍵。您可以避免樹狀目錄控制項提供樹狀目錄控制項來傳送這些通知 TVS_DISABLEDRAGDROP 樣式。

您取得影像顯示拖放作業期間,藉由呼叫 CreateDragImage 成員函式。樹狀目錄控制項建立拖曳點陣圖根據您所拖曳的項目標籤。樹狀目錄控制項中,會建立影像清單、 新增點陣圖,且變數的指標,會傳回 CImageList 物件。

您必須提供實質拖曳項目中的程式碼。這通常包括使用拖曳的影像清單的函式的功能,並處理將 WM_MOUSEMOVEWM_LBUTTONUP (或 WM_RBUTTONUP) 傳送拖曳作業開始之後的訊息。如需有關的影像清單的函式的詳細資訊,請參閱 CImageListMFC 參考手冊 》列出映像在Windows SDK。如需將樹狀目錄控制項項目,請參閱拖曳樹狀檢視項目、 奧 ㄛ 婓 ▲ Windows SDK。

如果樹狀目錄控制項中的項目拖放作業的目標,您需要知道當滑鼠游標位於目標項目。您可以藉由呼叫來找出 HitTest 成員函式。您指定一個點和整數或位址 TVHITTESTINFO 結構,其中包含目前滑鼠游標的座標。此函式傳回時,整數或結構包含旗標,表示相對於樹狀目錄控制項的滑鼠指標的位置。如果游標在樹狀目錄控制項中的項目上方,結構會包含之項目的控制代碼。

您可以指出項目是拖放作業的目標,藉由呼叫 SetItem 成員函式來將狀態設定為TVIS_DROPHILITED的值。具有這種狀態的項目是以用來表示拖放目標的樣式繪製的。

請參閱

參考

使用 CTreeCtrl

概念

控制項 (MFC)