- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用 Codegear 开发的 VCL gui。我为主窗体创建了一个 DropTarget,DropTarget 对象实现了 IDropTarget 接口(interface),它允许我从资源管理器中拖放文件。现在因为我只希望一些子组件成为放置目标(而不是整个表单),所以当 POINTL 坐标在组件的边界内时,我只让 DragEnter 方法返回 S_OK。
但是,如果我将项目缓慢拖入窗体的边界而不是组件,DragEnter 返回 E_NOINTERFACE,因此不允许放置。如果我继续拖入拖放区,DragEnter 将不会触发,我明白它为什么不触发。所以我的问题是如何手动触发 DragEnter 事件?
最佳答案
您似乎忽略了 IDropTarget 有一个 DragOver() 方法,除了 DragEnter() 之外您还需要使用该方法。如果 DragEnter() 没有以您允许的坐标开始,那么您必须返回 S_OK
并将 pdwEffect 参数设置为 DROPEFFECT_NONE
,然后让 DragOver() 继续执行它的操作之后自己进行坐标检查。
此外,由于您只想拖动到特定控件上,因此您应该为每个单独的控件(假设它们是 TWinControl 后代)调用 RegisterDragDrop(),而不是为 TForm 本身调用。
关于c++ - 与 VCL 窗体一起使用时 IDropTarget 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1204935/
我想将文件从 Windows 资源管理器拖放到我在 Codegear RAD studio 2009 中构建的应用程序中。然后我希望能够从我正在拖放的对象中访问数据。我相信我必须实现 IDropTar
我正在寻找如何实现 IDropTarget 的示例在网络浏览器中。作为“基本”代码,我将使用 this answer . 最佳答案 理论上,您应该包装原始的 IDropTarget 对象,从 MSHT
我正在基于:How can I allow a form to accept file dropping without handling Windows messages? 实现我的 IDropTa
我正在尝试 Hook IDropTarget::Drop COM 方法,但我没有,在此之前我 Hook 了 IFileOperation::RenameItems 方法,它工作正常,对于 Rename
我有一个用 Codegear 开发的 VCL gui。我为主窗体创建了一个 DropTarget,DropTarget 对象实现了 IDropTarget 接口(interface),它允许我从资源管
我正在用 C# 实现一个可处理文件的小工具。因为我很懒,所以我想在注册表中的文件类型上注册我的工具,以便能够简单地从资源管理器中打开我的所有文件。目前我正在使用 HCR\MyFile\shell\op
我正在尝试在没有 MFC 的情况下用 C++ 制作一个类似 Windows Explorer 的程序。 它有一个显示文件系统目录和文件的 ListView 。 我想为 ListView 添加放置目标功
我需要对用户在表单上的拖放操作使用react。从资源管理器接受文件并不困难,但接受 OLE 对象(Outlook 电子邮件)放置对我来说就很难处理了。 到目前为止,我有一个已实现 IDropTarge
我是一名优秀的程序员,十分优秀!