MFC List Control列表项内容在Edit中拖拽显示的实现

一、由于MFC List Control自身没有拖拽的功能,所以首先我们自己添加一个继承CListCtrl类的CDragListCtrl类,用于重写拖拽功能。

二、使用成员变量向导添加一个CDragListCtrl的成员变量m_DragList,在Dlg类中设置List Control的一些属性和添加内容。

三、List Control的一些基本设置完成后,我们开始在CDragListCtrl类中编写相应的拖拽功能:

1、在CDragListCtrl类中添加三个私有成员变量(公有变量也可以,想到只有本类自己使用,就添加成私有的)

private:
    int m_nSelItem; //被拖拽的Item index
    CImageList *m_pDragImageList; //图像列表指针

    BOOL m_bDragging; //正在拖拽标志

在类构造函数跟析构函数对添加的变量赋初值和解放内容等。

2、分别重写CDragListCtrl类的三个消息










四、完成上边的三步后我们已经完成了拖拽的功能,并且在OnLButtonUp的重写中,我们已经把选中的项目内容显示到了主窗口的某个上边。下边有个小技巧可以把我们所选中的内容在Edit控件中垂直居中显示。此功能需要把Edit控件中的Multiline设置为TRUE。



五、程序的最终显示效果为:





 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值