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_MULTIPLESELECT樣式。 如需清單框樣式的描述,請參閱 清單框樣式。
若要在應用程式的現有對話方塊中使用拖曳清單框,請使用對話框編輯器將清單框控件新增至對話框範本,然後指派對應至對話框範本中清單框控件的成員變數(類別 Control
目錄和變數類型 CDragListBox
)。
如需將控件指派給成員變數的詳細資訊,請參閱 定義對話框控件之成員變數的快捷方式。
繼承階層架構
CDragListBox
需求
標頭: afxcmn.h
CDragListBox::BeginDrag
架構會在可能發生可能開始拖曳作業的事件時呼叫,例如按下滑鼠左鍵。
virtual BOOL BeginDrag(CPoint pt);
參數
傳回值
如果允許拖曳,則為非零,否則為 0。
備註
如果您想要控制拖曳作業開始時會發生什麼情況,請覆寫此函式。 默認實作會擷取滑鼠並停留在拖曳模式中,直到使用者按兩下左右滑鼠按鈕,或按下 ESC 鍵,此時拖曳作業就會取消。
CDragListBox::CancelDrag
當拖曳作業取消時,由架構呼叫。
virtual void CancelDrag(CPoint pt);
參數
備註
覆寫此函式以處理清單框控件的任何特殊處理。
CDragListBox::CDragListBox
建構 CDragListBox
物件。
CDragListBox();
CDragListBox::D ragging
在物件內 CDragListBox
拖曳清單框專案時,由架構呼叫。
virtual UINT Dragging(CPoint pt);
參數
pt
CPoint 物件,其中包含游標的 x 和 y 螢幕座標。
傳回值
要顯示之數據指標的資源標識碼。 下列值是可能的:
DL_COPYCURSOR 指出將複製專案。
DL_MOVECURSOR 指出專案將會移動。
DL_STOPCURSOR 指出目前的置放目標無法接受。
備註
默認行為會傳回DL_MOVECURSOR。 如果您想要提供其他功能,請覆寫此函式。
CDragListBox::D rawInsert
由架構呼叫,以在具有指示索引的專案之前繪製插入指南。
virtual void DrawInsert(int nItem);
參數
nItem
插入點之以零起始的索引。
備註
值 - 1 會清除插入指南。 覆寫此函式以修改插入指南的外觀或行為。
CDragListBox::D ropped
在物件內 CDragListBox
卸除專案時,由架構呼叫。
virtual void Dropped(
int nSrcIndex,
CPoint pt);
參數
nSrcIndex
指定已卸除字串的以零起始的索引。
pt
包含置放月臺座標的 CPoint 物件。
備註
默認行為會將清單框專案及其數據複製到新位置,然後刪除原始專案。 覆寫此函式以自定義預設行為,例如將清單框項目複本拖曳至清單中的其他位置。
CDragListBox::ItemFromPt
呼叫此函式,以擷取位於 pt 之清單框專案的以零起始的索引。
int ItemFromPt(
CPoint pt,
BOOL bAutoScroll = TRUE) const;
參數
bAutoScroll
如果允許卷動,則為非零,否則為 0。
傳回值
拖曳清單框專案的以零起始的索引。