【发布时间】:2014-04-25 21:51:28
【问题描述】:
我正在使用 DirectX 11 用 C++ 编写一个程序,我想拥有它,以便我的程序在用户按下 Ctrl-Alt-Del 或 Alt-Tab 时最小化。
让窗口本身最小化是很容易的部分,因为我所要做的就是调用这个函数:
ShowWindow(hWnd, SW_MINIMIZE);
我坚持的部分是让它检测输入这两个特定击键中的任何一个的时间,以便在其中一个事件发生时调用该函数。
我们将不胜感激,如果您需要我澄清某些事情,请告诉我。
【问题讨论】:
-
你为什么要最小化? Windows 本身不会在窗口顶部显示它需要的内容吗?
-
最小化并不是我问题的重点。我想知道如何正确处理 Ctrl-Alt-Del 和 Alt-Tab 的原因是我的程序在用户输入时会表现得很好,并且这种处理所述事件的知识在将来会很有用。
-
这就是我的问题的重点 - Windows 应该做正确的事情,这样你的程序就不必“表现得很好”,它是自动的,你不能或不应该做任何事情来影响这个过程.我想知道你是否有一些特定的情况。
-
好的,这是我需要解决的一种情况。当我的程序处于全屏状态并且我点击 alt-tab 时,它会进入窗口模式。我宁愿让它最小化。
-
您最好的选择是检测结果状态,而不是您认为会到达那里的击键。我怀疑当您的窗口不再是活动窗口时,您真正想要的是一条消息 - 在这种情况下,使用
WA_INACTIVE消息参数查找WM_ACTIVATE。这应该同时触发 ALT+TAB 和 CTRL+ALT+DELETE,以及任何其他意外中断,例如来电或紧急更新。
标签: c++ winapi directx-11 winmain alt-tab