【问题标题】:Mouse pointer state in Windows applications doesn't change until mouse movesWindows 应用程序中的鼠标指针状态在鼠标移动之前不会改变
【发布时间】:2010-07-01 08:53:42
【问题描述】:

有没有人注意到在 Windows 应用程序中鼠标指针不会从沙漏变回正常状态,直到您移动鼠标?

因此,即使您的应用程序已完成一项任务并且鼠标指针已设置为返回默认值,它仍将保持为沙漏,直到您移动鼠标。 这是什么原因,可以解决吗?

我不确定其他人是否注意到了这一点,但这很奇怪,它可能是某种事件驱动的方式来节省操作系统资源。

【问题讨论】:

  • 如果您将鼠标指针设置回Default(例如),它应该会立即变回。你有一个例子说明它在哪里“粘”吗?
  • @Chris:只需进行谷歌搜索,它就会显示一些示例。例如:bigresource.com/VB-Hourglass-stays-gxRMXlOAPZ.html

标签: windows mouse


【解决方案1】:

对话框应该保持沙漏的逻辑。工作线程应该向对话框本身发送一条消息,告诉它开始维护一个沙漏线程。 (您可以通过在启动和停止沙漏的对话框中添加一个临时按钮来测试这一点。)

要注意的另一件事是,让第二个流程设置第一个流程的沙漏是一件很奇怪的事情。沙漏应该只因用户操作而发生。当沙漏上升时,通常用户应该可以使用的唯一操作是“取消 [任何使沙漏保持上升的操作]。”

【讨论】:

  • @Srhik:我原以为如果取消按钮可用,那么鼠标指针不应该是沙漏。
【解决方案2】:

可以解决吗?在拨打SetCursor() 之前拨打ShowCursor(FALSE),然后拨打ShowCursor(TRUE)。应该做的工作。

【讨论】:

    猜你喜欢
    • 2016-08-04
    • 2012-12-25
    • 2020-12-04
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多