在Windows中拖放时如何隐藏光标(Python或其他语言)

2 投票
1 回答
1981 浏览
提问于 2025-04-16 19:08

我在谷歌上搜索了几个小时,但没什么收获。我想知道有没有人知道怎么在Windows中隐藏光标,或者设置一个自定义光标(可以是空白的),在拖放文件时使用。

我正在写一个程序,用openGL绘制自己的鼠标,通常情况下鼠标可以很好地隐藏,但当我把文件拖到程序窗口时,Windows的光标会显示拖放的方框,并且不会隐藏。使用ShowCursor(False)和SetCursor(None)(在python中)来隐藏光标的效果不稳定。

理想情况下,如果有人知道如何在Python中使用pywin32做到这一点,那就太好了,因为这是我项目使用的语言,但如果需要用其他语言来实现,我也可以。

另外,如果有人知道ShowCursor和SetCursor什么时候能确保隐藏光标,是否与窗口的焦点或其他相关因素有关,那也会很有帮助。

我找到这个页面:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dodragdrop.aspx#Y1354,但是我无法让C++代码编译通过,使用C#和VB版本时也会出现异常。我把光标从C:\Windows\Cursors复制到了可执行文件所在的目录,命名为3dwarro.cur和3dwno.cur。当我注释掉try语句时,尝试加载光标时会提示它们已损坏。

我还找到这个页面:http://www.rockhoppertech.com/java-drag-and-drop-faq.html。它说要把DragContext的光标设置为null,然后在dragOver时设置为你的光标。这个页面是Java的,我不知道怎么按照它说的去做。

非常感谢大家的帮助!

1 个回答

0

Windows SDK:

ShowCursor:这个函数用来设置一个内部的显示计数器,这个计数器决定了光标是否应该显示。只有当这个计数器的值大于或等于0时,光标才会被显示出来。

所以你可以尝试类似下面的代码:

while ShowCursor(False) >= 0 do ;

撰写回答