2015-11-14 64 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