ListCtrl响应文件图标拖拽的方法

  我是想说从文件系统中拖动文件的图标到我们的应用程序中,主要是为了与在两个ListCtrl之间拖动Item相区别。

  我发现具体实现方法可能很多,但大体可以分为两类:一类是用ListCtrl所属的对话框或窗口来处理,一类是由ListCtrl自己处理拖动。

  通过所在窗口处理是这样实现的。首先ListCtrl所在窗口必须允许处理拖动文件,就是必须具有Accept File风格,同时ListCtrl控件不能具有该风格,然后做消息映射,可以用ON_MESSAGE()映射到自己定义的任何函数上,也可以用ON_WM_DROPFILES()宏,这时就必须重载OnDropFiles(HDROP hDropInfo) 并在其中做相应处理,比如增加图表Item之类。

  另一种就是由ListCtrl控件自己处理,这种我还没完全搞清楚,在codeproject上看到过例子,使用了这一方法。我觉得,ListCtrl控件原本可以处理文件图标拖动的,只不过需要我们继承原始的CListCtrl,从而重载相应的函数(应该是OnDropFiles(HDROP hDropInfo) ),这样应该可以。但是codeproject上的例子似乎还不只是这样。应该继续研究。

  但是已经掌握了一种方法之后,人们往往就会产生惰性,懒得去寻找新的方法了,我觉得如果只是为了处理文件图标拖动也没有必要去建一个新类,但如果还要具备别的功能,就很有必要了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值