win7中,VC6编译的程序中出现的COleDropTarget和WM_DROPFILES相冲突的问题

本文探讨了在不同编译环境下,实现窗口拖拽功能时遇到的冲突问题。通过使用COleDropTarget和WM_DROPFILES机制,文章详细介绍了如何在Win7系统下解决由VC6编译的程序中出现的拖拽功能冲突,并指出迁移至VS2010可以避免此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        COleDropTarget:主要用于实现窗口对拖拽操作的支持,只要在目标窗口中定义COleDropTarget的成员变量,然后调用一下COleDropTarget::Register()函数将目标窗口注册一下就可以使窗口执行拖放操作了。

        WM_DROPFILES:主要实现对从资源管理器中将文件拖放到窗口中的响应,主要便于实现文件传输相关功能。在窗口调用AcceptFiles(TRUE)将窗口设定成支持文件拖放的,然后添加WM_DROPFILES消息的消息映射及响应函数,在响应函数中可以获取用户从资源管理器中拖动了哪些文件。

        为了是目标窗口支持上述两种行为的拖拽,同时添加了上述两种机制。结果却发现:在Win7系统中,VC6编出来的程序出现问题,两种拖拽相互冲突,都不支持了,而在XP系统中,则么有这样的问题。后来将工程迁移到VS2010中,则发现在Win7没有这样的问题了。

        后来大概的想了一下,估计原因是这样子的:vc6是上个世纪开发出来的东东,对新近的系统Win7支持多少是有点问题的,即VC6的程序在Win7下面可能有些地方会有、问题的。而VS2010是新近开发出来的,对Win7的支持想必是很好的,再就是VS2010中OLE相关的可能已经升级,所以使用VS2010后就没有出现类似的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dvlinker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值