我怎样才能检测到拖到窗口上的文件

How I can I detect the file dragged over my window

本文关键字:窗口 文件 检测      更新时间:2023-10-16

我使用 win32 API 创建了窗口。如何检测文件是否被拖动(而不是拖放)到我的窗口上?以及如何获取文件名列表。我知道 DragAcceptFiles/WM_DROPFILES 消息,但它们不注册拖动。当用户丢弃时,我会收到消息。所以我无法显示拖放的文件是否可以拖放到该位置或文件类型有效等......我尝试使用Spy++,我肯定没有收到任何消息,但是当我检查资源管理器窗口时,我看到它们正在传递自定义消息(WM_USER + 210)。我正在寻找唯一的 winapi 解决方案。

在Raymond Chen的帮助下回答我的问题,
将窗口注册为放置目标。

http://www.catch22.net/tuts/drop-target

http://msdn.microsoft.com/en-us/library/windows/desktop/bb776904(v=vs.85).aspx

并使用读取文件删除数据

http://msdn.microsoft.com/en-us/library/windows/desktop/bb776902(v=vs.85).aspx