手动实现窗口支持拖拽

近一次查找窗口拖拽事件时,发现相关代码被注释,然而仍然支持拖拽(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可以用来创建复合文档,复合文档包含了创建于不同源应用程序,有着不同类型的数据,因此它可以把文字声音图像表格、应用程序等组合在一起。

原文地址:https://www.cnblogs.com/ice-arrow/p/13597551.html