设置Cursor.Current但是一些外部窗口将其更改为“禁用”图标

时间:2014-04-23 10:40:51

标签: c# windows cursor

当我进行拖放操作时,我正在使用Cursor.Current将光标图标更改为我自己的自定义位图。这项工作正常,但是当我将光标移动到某些外部窗口上时,我拖动图标会更改为禁用图标(带有十字形的圆圈)。我需要能够在这个拖放操作期间将我的自定义位图维护为图标,无论我将其拖过哪个窗口。

无论鼠标悬停在哪个外部窗口上,如何让光标保持自定义位图?

1 个答案:

答案 0 :(得分:3)

您的应用程序是拖放通信中的发件人。该对象正在从您的应用程序中拖出并放在另一个应用程序上。这意味着当应用程序超过潜在的放置目标时,您的应用程序在游标状态中没有发言权。拖放是一个合作的过程。目标必须同意放弃一些东西。如果目标不希望将对象放在其上,系统将通过光标让用户知道。

所有这些意味着拖放是实现所需UI的错误方法。你需要停止使用拖放。相反,你需要捕获鼠标并在屏幕上绘制你的图标,同时用户是"拖动"它。您的要求似乎是实现类似于Spy ++窗口查找器的东西。本文介绍了如何执行此操作:Code Project, MS Spy++ style Window Finder