公司一个项目的一个小要求,希望程序可以直接接受文件管理器的拖放,是一个使程序更加便利的功能,不过这中间涉及ole的知识,平时不接触的人还真是很难搞懂。
在网上查了很多资料,就发现2篇文章很有用
文件拖动Drag & Drop 全解析
http://blog.csdn.net/sendy888/archive/2007/08/17/1747899.aspx
OLE Drap/Drop
http://blog.csdn.net/lyl_98/archive/2007/02/09/1506519.aspx
参考这2篇文章,我将我的程序修改后,成功支持了文件管理器拖放
很简单,只需要实现一个IDropTarget,传入一个接受拖拽操作的控件或窗口hWnd就可以了
而实现IDropTarget只需要编写其中的Drop函数,这个函数在用户将文件拖入你的程序后,松开鼠标后触发。
具体实现如下: