樹狀目錄控制項拖放作業
樹狀目錄控制項 (CTreeCtrl) 會在使用者開始拖曳項目時,傳送通知。 控制項傳送 TVN_BEGINDRAG 通知訊息,當使用者開始拖曳的項目,以滑鼠左鍵和 TVN_BEGINRDRAG 通知訊息,當使用者開始拖曳,以滑鼠右鍵。 您可以避免樹狀目錄控制項提供樹狀目錄控制項來傳送這些通知 TVS_DISABLEDRAGDROP 樣式。
您取得影像顯示拖放作業期間,藉由呼叫 CreateDragImage 成員函式。 樹狀目錄控制項建立拖曳點陣圖根據您所拖曳的項目標籤。 樹狀目錄控制項中,會建立影像清單、 新增點陣圖,且變數的指標,會傳回 CImageList 物件。
您必須提供實質拖曳項目中的程式碼。 這通常包括使用拖曳的影像清單的函式的功能,並處理將 WM_MOUSEMOVE 和 WM_LBUTTONUP (或 WM_RBUTTONUP) 傳送拖曳作業開始之後的訊息。 如需有關的影像清單的函式的詳細資訊,請參閱 CImageList 在 MFC 參考手冊 》 和列出映像在Windows SDK。 如需將樹狀目錄控制項項目,請參閱拖曳樹狀檢視項目、 奧 ㄛ 婓 ▲ Windows SDK。
如果樹狀目錄控制項中的項目拖放作業的目標,您需要知道當滑鼠游標位於目標項目。 您可以藉由呼叫來找出 HitTest 成員函式。 您指定一個點和整數或位址 TVHITTESTINFO 結構,其中包含目前滑鼠游標的座標。 此函式傳回時,整數或結構包含旗標,表示相對於樹狀目錄控制項的滑鼠指標的位置。 如果游標在樹狀目錄控制項中的項目上方,結構會包含之項目的控制代碼。
您可以指出項目是拖放作業的目標,藉由呼叫 SetItem 成員函式來將狀態設定為TVIS_DROPHILITED的值。 具有這種狀態的項目是以用來表示拖放目標的樣式繪製的。