2012-07-08 16 views
2

我目前使用ShowWindow(hwnd, SW_HIDE),但Alt键标签似乎仍然可以切换到它是隐藏了。(C++/win32)中隐藏一个窗口,使用户不能使用Alt-Tab或切换到它

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

编辑:我应该补充说,使用WS_EX_TOOLBOX风格没有帮助。足够的替代标签ShowWindow(SW_SHOW),一些奇怪的事情发生。

+0

SW_HIDE应该工作。你确定你的消息得到了传递吗?您的电话SW_HIDE后,您的主要GUI线程是否仍然泵送信息? – 2012-07-08 10:42:42

+0

@IvanShcherbakov是的消息正在交付...此外,我尝试处理WM_ACTIVATE,而Alt-Tab只是停止发送WM_ACTIVATE消息几个Alt-Tabs后。 – Joshua 2012-07-08 11:18:06

+0

你究竟如何处理它们?如果你开始为每个消息返回DefWindowProc(),只是为了一个简单的实验,SW_HIDE是否按预期工作? – 2012-07-08 18:07:26

回答

0

试试这个代码隐藏窗口
我试试这个代码和隐藏的窗口将不会出现在您按下Alt键 + 标签 [我使用的双赢XP]
要显示窗口按标签 + 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); 
+0

= /我正在使用Windows 7,并且可以确认如果您按Alt + Tab足够多的时间,“SW_HIDE”没有完全躲避Alt + Tab。 – Joshua 2012-07-08 08:16:52

+0

好吧我正在使用Win-XP并且它工作正常.. http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx – 2012-07-08 08:22:42