CDragListBox 类

除提供 Windows 列表框功能外,CDragListBox 类还允许用户在列表框内移动文件名等列表框项。

语法

class CDragListBox : public CListBox

成员

公共构造函数

名称 描述
CDragListBox::CDragListBox 构造 CDragListBox 对象。

公共方法

名称 描述
CDragListBox::BeginDrag 在拖动操作开始时由框架调用。
CDragListBox::CancelDrag 在取消拖动操作后由框架调用。
CDragListBox::Dragging 在拖动操作执行期间由框架调用。
CDragListBox::DrawInsert 绘制拖动列表框的插入指针。
CDragListBox::Dropped 删除项后由框架调用。
CDragListBox::ItemFromPt 返回要拖动的项的坐标。

注解

包含此功能的列表框允许用户以最有用的方式对列表中的项排序。 默认情况下,列表框会将该项移动到列表中的新位置。 但是,可以自定义 CDragListBox 对象来复制项,而不移动它们。

CDragListBox 类关联的列表框控件不得有 LBS_SORT 或 LBS_MULTIPLESELECT 样式。 有关列表框样式的说明,请参阅列表框样式

若要在应用程序的现有对话框中使用拖动列表框,请使用对话框编辑器将列表框控件添加到对话框模板,然后分配一个对应于对话框模板中的列表框控件的成员变量(“类别”为 Control,“变量类型”为 CDragListBox)。

若要详细了解如何将控件分配给成员变量,请参阅用于定义对话框控件的成员变量的快捷方式

继承层次结构

CObject

CCmdTarget

CWnd

CListBox

CDragListBox

要求

标头: afxcmn.h

CDragListBox::BeginDrag

当发生可能启动拖动操作的事件(例如按鼠标左键)时由框架调用。

virtual BOOL BeginDrag(CPoint pt);

参数

pt
一个 CPoint 对象,其中包含要拖动的项的坐标。

返回值

如果允许拖动,则为非零值,否则为 0。

备注

如果要控制拖动操作开始时发生的情况,请重写此函数。 默认实现会捕获鼠标,并会一直处于拖动模式,直到用户单击左或右鼠标按钮或按 ESC,此时拖动操作会被取消。

CDragListBox::CancelDrag

在取消拖动操作后由框架调用。

virtual void CancelDrag(CPoint pt);

参数

pt
一个 CPoint 对象,其中包含要拖动的项的坐标。

注解

重写此函数以应对针对列表框控件进行的任何特殊处理。

CDragListBox::CDragListBox

构造 CDragListBox 对象。

CDragListBox();

CDragListBox::Dragging

CDragListBox 对象中拖动列表框项时由框架调用。

virtual UINT Dragging(CPoint pt);

参数

pt
一个 CPoint 对象,其中包含光标的 x 和 y 屏幕坐标。

返回值

要显示的光标的资源 ID。 可能的值如下:

  • DL_COPYCURSOR 指示将复制该项。

  • DL_MOVECURSOR 指示将移动该项。

  • DL_STOPCURSOR 指示当前删除目标不可接受。

注解

默认行为返回 DL_MOVECURSOR。 如果要提供其他功能,请重写此函数。

CDragListBox::DrawInsert

由框架调用,以在带有指示的索引的项前绘制插入指针。

virtual void DrawInsert(int nItem);

参数

nItem
插入点的从零开始的索引。

备注

值为 - 1 会清除插入指针。 重写此函数以修改插入指针的外观或行为。

CDragListBox::Dropped

CDragListBox 对象中删除项时由框架调用。

virtual void Dropped(
    int nSrcIndex,
    CPoint pt);

参数

nSrcIndex
指定已删除字符串的从零开始的索引。

pt
一个 CPoint 对象,其中包含放置站点的坐标。

注解

默认行为将列表框项及其数据复制到新位置,然后删除原始项。 重写此函数以自定义默认行为,例如,允许将列表框项的副本拖动到列表中的其他位置。

CDragListBox::ItemFromPt

调用此函数以检索位于 pt 的列表框项的从零开始的索引。

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

参数

pt
一个 CPoint 对象,其中包含列表框中的某个点的坐标。

bAutoScroll
如果允许滚动,则为非零值;否则为 0。

返回值

拖动列表框项的从零开始的索引。

另请参阅

MFC 示例 TSTCON
CListBox 类
层次结构图
CListBox 类