共用方式為


樹狀目錄控件拖放作業

樹狀目錄控件 (CTreeCtrl) 會在用戶開始拖曳項目時傳送通知。 當用戶開始使用滑鼠左鍵拖曳專案時,控件會傳送 TVN_BEGINDRAG 通知訊息,並在使用者以右按鈕開始拖曳時 傳送TVN_BEGINRDRAG 通知訊息。 您可以透過給予樹狀控件 TVS_DISABLEDRAGDROP 樣式,防止樹狀控件傳送這些通知。

您可以藉由呼叫 CreateDragImage 成員函式,取得在拖曳作業期間顯示的影像。 樹狀結構控件會根據所拖曳項目的標籤建立拖曳位圖。 然後樹狀結構控件會建立影像清單、將點圖加入其中,並傳回 CImageList 物件的指標。

您必須提供實際拖曳項目的程式代碼。 這通常牽涉到使用影像清單功能的拖曳能力,並處理在拖曳操作開始後傳送的WM_MOUSEMOVEWM_LBUTTONUP(或WM_RBUTTONUP)訊息。 如需映像清單函式的詳細資訊,請參閱 Windows SDK 中的 MFC 參考映射清單中的 CImageList。 如需拖曳樹狀控制項的詳細資訊,請參閱 拖曳樹狀檢視項目,亦可參見 Windows SDK。

如果樹狀結構控件中的專案是拖放作業的目標,您必須知道滑鼠游標何時位於目標專案上。 您可以呼叫 HitTest 成員函式來找出。 您可以指定一個點和整數,或包含滑鼠游標目前座標之 TVHITTESTINFO 結構的位址。 當函式傳回時,整數或結構會包含旗標,指出滑鼠游標相對於樹狀控件的位置。 如果游標位於樹狀控制項中的專案上,結構中也會包含該專案的句柄。

您可以呼叫 SetItem 成員函式,將狀態設定為 TVIS_DROPHILITED 值,以指出專案是拖放作業的目標。 具有此狀態的專案會繪製在用來表示拖放目標的樣式中。

另請參閱

使用 CTreeCtrl
控制項