次の方法で共有


CDragListBox クラス

CDragListBox クラスでは、Windows リスト ボックスの機能に加えて、リスト ボックス内でファイル名などのリスト ボックス項目を移動できます。

構文

class CDragListBox : public CListBox

メンバー

パブリック コンストラクター

名前 説明
CDragListBox::CDragListBox CDragListBox オブジェクトを構築します。

パブリック メソッド

名前 説明
CDragListBox::BeginDrag ドラッグ操作の開始時にフレームワークによって呼び出されます。
CDragListBox::CancelDrag ドラッグ操作が取り消されたときにフレームワークによって呼び出されます。
CDragListBox::D ragging ドラッグ操作中にフレームワークによって呼び出されます。
CDragListBox::D rawInsert ドラッグ リスト ボックスの挿入ガイドを描画します。
CDragListBox::D ropped 項目が削除された後にフレームワークによって呼び出されます。
CDragListBox::ItemFromPt ドラッグする項目の座標を返します。

解説

この機能を備えたリスト ボックスを使用すると、ユーザーは最も便利な方法でリスト内のアイテムを並べ替えできます。 既定では、リスト ボックスはリスト内の新しい場所にアイテムを移動します。 ただし、 CDragListBox オブジェクトは、アイテムを移動する代わりにコピーするようにカスタマイズできます。

CDragListBox クラスに関連付けられているリスト ボックス コントロールには、LBS_SORTまたはLBS_MULTIPLESELECT スタイルを含めてはなりません。 リスト ボックス スタイルの説明については、「リスト ボックス スタイル」を参照してください。

アプリケーションの既存のダイアログ ボックスでドラッグ リスト ボックスを使用するには、ダイアログ エディターを使用してリスト ボックス コントロールをダイアログ テンプレートに追加し、ダイアログ テンプレートのリスト ボックス コントロールに対応するメンバー変数 (カテゴリ Control と変数の種類 CDragListBox) を割り当てます。

メンバー変数にコントロールを割り当てる方法の詳細については、「 ダイアログ コントロールのメンバー変数を定義するためのShortcutを参照してください。

継承階層

CObject

CCmdTarget

CWnd

CListBox

CDragListBox

要件

ヘッダー: afxcmn.h

CDragListBox::BeginDrag

マウスの左ボタンを押すなど、ドラッグ操作を開始できるイベントが発生したときにフレームワークによって呼び出されます。

virtual BOOL BeginDrag(CPoint pt);

パラメーター

pt
ドラッグするアイテムの座標を格納する CPoint オブジェクト。

戻り値

ドラッグが許可されている場合は 0 以外、それ以外の場合は 0。

解説

ドラッグ操作の開始時に何が起こるかを制御する場合は、この関数をオーバーライドします。 既定の実装では、マウスをキャプチャし、ユーザーがマウスの左または右ボタンをクリックするか、Esc キーを押すまでドラッグ モードのままで、ドラッグ操作が取り消されます。

CDragListBox::CancelDrag

ドラッグ操作が取り消されたときにフレームワークによって呼び出されます。

virtual void CancelDrag(CPoint pt);

パラメーター

pt
ドラッグするアイテムの座標を格納する CPoint オブジェクト。

解説

リスト ボックス コントロールの特別な処理を処理するには、この関数をオーバーライドします。

CDragListBox::CDragListBox

CDragListBox オブジェクトを構築します。

CDragListBox();

CDragListBox::D ragging

CDragListBox オブジェクト内でリスト ボックス項目がドラッグされているときにフレームワークによって呼び出されます。

virtual UINT Dragging(CPoint pt);

パラメーター

pt
カーソルの x 画面座標と y 画面座標を格納する CPoint オブジェクト。

戻り値

表示するカーソルのリソース ID。 可能な値は次のとおりです。

  • DL_COPYCURSOR アイテムがコピーされることを示します。

  • DL_MOVECURSOR アイテムが移動されることを示します。

  • DL_STOPCURSOR 現在のドロップ ターゲットが受け入れられないことを示します。

解説

既定の動作では、DL_MOVECURSORが返されます。 追加機能を提供する場合は、この関数をオーバーライドします。

CDragListBox::D rawInsert

指定されたインデックスを持つ項目の前に挿入ガイドを描画するために、フレームワークによって呼び出されます。

virtual void DrawInsert(int nItem);

パラメーター

nItem
カーソルの 0 から始まるインデックス。

解説

値 - 1 を指定すると、挿入ガイドがクリアされます。 挿入ガイドの外観または動作を変更するには、この関数をオーバーライドします。

CDragListBox::D ropped

CDragListBox オブジェクト内で項目が削除されたときにフレームワークによって呼び出されます。

virtual void Dropped(
    int nSrcIndex,
    CPoint pt);

パラメーター

nSrcIndex
ドロップされた文字列の 0 から始まるインデックスを指定します。

pt
ドロップ サイトの座標を格納する CPoint オブジェクト。

解説

既定の動作では、リスト ボックス項目とそのデータが新しい場所にコピーされ、元のアイテムが削除されます。 リスト ボックス項目のコピーをリスト内の他の場所にドラッグできるようにするなど、既定の動作をカスタマイズするには、この関数をオーバーライドします。

CDragListBox::ItemFromPt

この関数を呼び出して、 pt にあるリスト ボックス項目の 0 から始まるインデックスを取得します。

int ItemFromPt(
    CPoint pt,
    BOOL bAutoScroll = TRUE) const;

パラメーター

pt
リスト ボックス内の点の座標を含む CPoint オブジェクト。

bAutoScroll
スクロールが許可されている場合は 0 以外、それ以外の場合は 0。

戻り値

ドラッグ リスト ボックス項目の 0 から始まるインデックス。

関連項目

MFC サンプル TSTCON
CListBox クラス
階層図
CListBox クラス