【问题标题】:DirectX / Windows: Unable to focus on task manager when force-closing applicationDirectX / Windows:强制关闭应用程序时无法专注于任务管理器
【发布时间】:2013-03-24 01:47:29
【问题描述】:

这个问题可能表明对 Windows 中的 DirectX 编程存在根本性的误解,但我遇到了一些我无法弄清楚的问题。我的程序在全屏运行时,有时会进入奇怪的状态,我必须强制关闭应用程序(CTRL+ALT+DEL)。

问题是当我按CTRL+ALT+DEL时,出现任务管理器,但我不能使用鼠标;键盘一开始可以工作,但如果我用鼠标单击任务管理器窗口,它会失去焦点,我无法再重新获得焦点。该应用程序也不会最小化自身(Windows 应用程序编程问题?)

是否有可能我的应用正在窃取鼠标的独占权?我正在使用 DirectInput,但应用程序根本不处理鼠标输入。此外,此问题仅在全屏运行应用程序时发生。如果我在窗口中运行它,一切都很好。

如果重要的话,我使用的工具是 MS Visual Studio 12、Windows 8 和 DirectX 9。

【问题讨论】:

    标签: windows directx directinput


    【解决方案1】:

    解决方案是取消获取所有输入设备并在应用程序失去焦点时停止渲染例程。 我只是将应用程序设置为跟踪它是否具有焦点,并在 Windows 消息泵中适当地调整值以获取适当的消息。具体来说,当我收到以下消息时,我将焦点设置为“关闭”:

    WM_SIZE(当wParam = SIZE_MINIMIZED)、WM_KILLFOCUSWM_ENTERSIZEMOVEWM_ENTERMENULOOP

    我重新关注以下消息:

    WM_SIZE(所有其他情况)、WM_SETFOCUSWM_EXITSIZEMOVEWM_ACTIVATEAPP wParam 设置为 true,以及 WM_EXITMENULOOP

    WM_KILLFOCUS 足以解决 ALT-CTRL-DELETE-ing 退出应用程序的问题。

    【讨论】:

      猜你喜欢
      • 2013-12-01
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多