【问题标题】:(C++/win32) Hide a window so that the user cannot alt-tab or switch to it(C++/win32) 隐藏一个窗口,使用户无法使用 alt-tab 或切换到它
【发布时间】:2012-07-08 01:18:23
【问题描述】:

我目前正在使用ShowWindow( hwnd, SW_HIDE ),但是AltTab隐藏后似乎仍然可以切换到它。

有没有办法完全隐藏一个窗口而不破坏它?

编辑:我应该补充一点,使用 WS_EX_TOOLBOX 样式没有帮助。有了足够的 AltTabShowWindow(SW_SHOW),就会发生一些奇怪的事情。

【问题讨论】:

  • SW_HIDE 应该可以工作。你确定你的消息会送达吗?调用 SW_HIDE 后,您的主 GUI 线程是否仍在发送消息?
  • @IvanShcherbakov 是的,消息正在传递......另外,我尝试处理 WM_ACTIVATE,但 Alt-Tab 只是在几个 Alt-Tab 后停止发送 WM_ACTIVATE 消息。
  • 您究竟是如何处理它们的?如果你开始为每条消息返回 DefWindowProc(),只是为了一个简单的实验,SW_HIDE 会按预期工作吗?
  • @IvanShcherbakov 我为每条消息返回 DefWindowProc()(我没有return 0,我只是在最后break;return DefWindowProc())。 SW_HIDE 确实有效,但似乎无法避开 Alt-Tab。

标签: c++ winapi user-interface window alt-tab


【解决方案1】:

试试这个代码来隐藏窗口
我试过这段代码,当你按下 Alt + Tab [我正在使用 win-xp]
时不会出现隐藏窗口 要显示窗口,请按 Tab + Esc

HWND hwnd_win = GetForegroundWindow();
ShowWindow(hwnd_win,SW_HIDE);
while(1)
{
    Sleep(1000);
    if(GetAsyncKeyState(VK_ESCAPE|VK_TAB ))
        break;
}   
ShowWindow(hwnd_win,SW_SHOW);

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2014-06-17
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多