如何检测全局拖动事件?

时间:2016-04-29 13:37:44

标签: c++ qt

我有一个窗口可以放入文件。我想要做的是当用户开始在桌面上拖动某些内容时(例如不在窗口上),可以更改窗口的外观。

为此,我需要从窗口捕获一个全局事件。这个事件叫做GiveFeedBack我想(https://msdn.microsoft.com/en-us/library/system.windows.forms.control.givefeedback(v=vs.110).aspx)?但是如何在Qt上检测到它呢?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以为鼠标事件设置一个窗口挂钩,并注意潜在的拖放,或者在其他正在运行的进程中添加挂钩到窗口的消息处理中(不是特别好)。

在某些情况下,UAC可能会停止此工作。

请参阅: SetWindowsHookEx

可能还有一些COM接口。但是当拖动开始时你可能不会得到事件。请参阅RegisterDragDrop