0

我正在开发一个全屏应用程序,其中包含一些动画表单控件(基本上是移动的标签)。

我想在一段时间不活动后隐藏光标,我尝试使用此线程中给出的方法:Hide mouse cursor after a idle time

虽然这在某种意义上有效,但表单计时器甚至不会开始计数,直到表单没有更多更新(对我的需要无用)。此外,一旦光标被隐藏,它会在控件移动时重新显示(即其中一个标签被动画化)。

我需要的是让 Windows 忽略显示器本身发生的任何事情,只需服从我的“Cursor.Hide()”和“Cursor.Show()”调用。我尝试使用普通的线程计时器,但这根本不起作用 - 光标甚至没有隐藏。

所以我想我要的是一种隐藏光标的方法,同时允许动画发生而不重新显示光标。

任何帮助深表感谢。汤姆

4

3 回答 3

2

猜测一下,为什么不设置一个开关,它只会处理所有与 wndproc 中的鼠标相关的 WM_ 消息,而什么也不做。在切换关闭时,让 WM_ 鼠标消息的正常处理发生。

于 2009-08-07T17:48:27.183 回答
0

线程计时器方法调用不会在创建它们的线程上执行,因此要使调用正常工作,您必须通过 UI 线程上的调用来进行这些调用。

于 2009-08-07T12:04:37.860 回答
0

似乎有一个错误http://social.msdn.microsoft.com/Forums/en-US/smallbasic/thread/2b963082-c5a7-469c-ba35-02b4a546f913/

您可能会尝试使用 100% 透明位图分配自己的自定义光标 - 看起来没有光标。

于 2009-08-07T11:36:09.900 回答