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を参照してください。
継承階層
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 から始まるインデックス。