`RegisterDragDrop`返回S_OK,但没有调用DragEnter方法

时间:2012-08-20 21:12:49

标签: windows delphi api

我在Windows 7中遇到了这个问题。首先,我定义了一个实现IDropTarget的类。然后我使用RegisterDragDrop来处理放置在我的应用程序窗口中的控件的句柄。 RegisterDragDrop会返回S_OK但是当我将Mozilla FireFox的链接拖放到控件时,不会调用DragEnter,也不会调用IDropTarget的任何其他功能实现对象。我很累,不知道该怎么办。 提前致谢

P.S:我刚刚发现当我以管理员身份运行我的应用程序时,会出现此问题! 当我正常运行应用程序时,一切正常! (也许它与更改消息过滤器有什么关系?)

1 个答案:

答案 0 :(得分:7)

假设您的代码是正确的,并且您已正确实施了您的方面;如果您在Windows Vista或Windows 7上进行开发,请确保以与Mozilla相同的权限级别运行应用程序。如果您在以管理员身份运行的IDE中进行开发,但以登录用户身份运行Mozilla Firefox,则无法通过拖放进行通信。

如果不是这样,那么您可以尝试从Windows资源管理器中拖动文件以确保您的代码正常运行。可能是Mozilla Firefox没有正确使用Microsoft的Ole Drag and drop子系统。