手动实现窗口支持拖拽
近一次查找窗口拖拽事件时,发现相关代码被注释,然而仍然支持拖拽(drag and drop),有些疑惑便查了一下,发现除了使用消息外,
还可以通过实现以下接口的方式支持(应用程序几乎都是用的OLE 技术):
1. IDropSource 源
2. IDropTarget 目标
3. IDataObject 正在拖放的数据
作为 源,需要1,3两个接口
作为 目标,仅仅需要2一个接口即可
下边的链接讲述的比较详细:
https://blog.csdn.net/qq_18218335/article/details/70207920
附:
OLE:
Object Linking and Embedding,对象连接与嵌入,简称OLE技术。OLE 不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为组件对象模型(COM)。OLE可以用来创建复合文档,复合文档包含了创建于不同源应用程序,有着不同类型的数据,因此它可以把文字、声音、图像、表格、应用程序等组合在一起。