次の方法で共有


ツリー コントロールのドラッグ アンド ドロップ操作

ユーザーが項目をドラッグを開始すると、ツリー コントロール (CTreeCtrl)は、通知を送信します。コントロールは、ユーザーが右のボタンからドラッグを開始すると、ユーザーがマウスの左ボタンと TVN_BEGINRDRAG の通知メッセージから項目をドラッグを開始すると、 TVN_BEGINDRAG の通知メッセージを送信します。ツリー コントロールがツリー コントロールに TVS_DISABLEDRAGDROP の形式を指定することにより、これらの通知の送信を防ぐことができます。

CreateDragImage のメンバー関数を呼び出してドラッグ操作中に表示するイメージを取得します。ツリー コントロールは、ドラッグした項目のラベルに基づいてドラッグ ビットマップを作成します。その後、ツリー コントロールは、イメージ リストを作成し、ビットマップを追加し、 CImageList のオブジェクトへのポインターを返します。

実際に項目をドラッグするコードを記述します。これは、通常、ドラッグ操作が開始された後にイメージ リストの関数のドラッグ機能を使用して、送信 WM_MOUSEMOVEWM_LBUTTONUP (または) WM_RBUTTONUPメッセージを処理する必要があります。イメージ リストの関数についての詳細については、 Windows SDKの MFC リファレンス CImageListイメージ リスト を参照してください。ツリー コントロール項目をドラッグする方法の詳細については、 Windows SDKの ツリー ビュー アイテムをドラッグは、 " " を参照してください。

ツリー コントロール項目をドラッグ アンド ドロップ操作のターゲットにする場合は、マウス カーソルがターゲット項目にあることを確認する必要があります。HitTest のメンバー関数を呼び出すことで検索できます。マウス カーソルの現在の座標を含む構造 TVHITTESTINFO の点と整数、そのアドレスを指定します。関数の戻り値は、整数または構造体がツリー コントロールに対するマウス カーソルの位置を示すフラグが格納されます。カーソルがツリー コントロール項目にある場合、構造体は項目の処理も含まれています。

TVIS_DROPHILITED 値に状態を設定するために項目が SetItem のメンバー関数を呼び出してドラッグ アンド ドロップ操作のターゲット実行することを示すことができます。この状態がある項目はドラッグ アンド ドロップ ターゲットを示すために使用されるフォームに描画されます。

参照

関連項目

CTreeCtrl の使い方

概念

コントロール (MFC)