CDragListBox クラス
このクラスでは、Windows リスト ボックスの機能を提供するだけでなく、 CDragListBox
ユーザーはリスト ボックス内でファイル名などのリスト ボックス項目を移動できます。
構文
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_MULTIPLEStandard Edition LECT スタイルを含めてはなりません。 リスト ボックス スタイルの説明については、「リスト ボックス スタイル」を参照してください。
アプリケーションの既存のダイアログ ボックスでドラッグ リスト ボックスを使用するには、ダイアログ エディターを使用してリスト ボックス コントロールをダイアログ テンプレートに追加し、ダイアログ テンプレートのリスト ボックス コントロールに対応するメンバー変数 (Category Control
と Variable Type CDragListBox
) を割り当てます。
メンバー変数にコントロールを割り当てる方法の詳細については、「ダイアログ コントロールのメンバー変数を定義するためのショートカット」を参照してください。
継承階層
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 から始まるインデックス。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示