2015-11-14 63 views
-2

我怎样才能让窗户失去焦点,就像我最小化窗户一样?我试过SetForegroundWindow(GetNextWindow(hWnd, GW_HWNDNEXT)); 但它没有工作。看来GetNextWindow获得的HWND是错误的。
那么我可以改进它吗?
我不想使用ShowWindow(hWnd, SW_HIDE); ShowWindow(hWnd, SW_SHOWNA),因为它导致在Windows 7中的任务栏上的动画。

还有其他完美的方法吗?如何让窗户失去焦点?

+0

也许焦点设置为桌面窗口。 –

+0

什么是'hWnd'?根据这是顶层窗口还是子窗口,由GetNextWindow返回的句柄将引用顶层窗口或子窗口。你不能在子窗口上调用SetForegroundWindow。 – IInspectable

+0

这是一个XY问题的胡言乱语。发布后,唯一正确的答案是“不要这样做”。 –

回答

0

GW_HWNDNEXT在另一个窗口下面指定一个窗口。如前所述hereMSDN),

如果没有下(先前)窗口,返回值为NULL。要获得扩展的错误信息,请调用GetLastError。

因此,没有其他的hWndZ顺序被检索,因而有 “错” 的hWnd值(它的实际NULL)。

+0

那么,错误的hWnd实际上并不是NULL。它似乎是我SetForegroundWindow东西,不能被激活。 – Star

+0

好吧,我想'ShowWindow(hWnd,SW_MINIMIZE);'是要走的路 – NTAuthority

0

为什么不能这样?

ShowWindow(hWnd, SW_MINIMIZE); 

还有另外一个标志:SW_FORCEMINIMIZE