拖拽功能的实现是一个全局的功能实现,也就是可以跨进程的,类似windows文件拖拽打开的功能。
大体的实现可以分为两个主要的部分:
1. 被拖拽对象中添加COleDataSource,以处理被拖拽对象
2. 在拖拽目标中添加COleDropTarget, 以处理拖拽目标接受拖拽的相关事件
在COleDataSource类需要使用到的函数
-
CacheGlobalData(CF_TEXT, (HGLOBAL)htmpMem);
-
DoDragDrop(); // 开始数据拖拽,函数会在拖拽结束后返回
在COleDropTarget
需要重写这些虚函数OnDragEnter(), OnDragOver(), OnDragLeave(), 和OnDrop()。
同时创建CView时,一定要调用COleDropTarget对象的Register()方法,注册该窗口,使窗口可以接受拖拽