2010-08-18 69 views
3

只需處理WM_SIZE消息,是否可以知道窗口是否從最小化狀態恢復?WM_SIZE消息

回答

2

不,它不是 -

的wParam將SIZE_RESTORED(0)
和lParam將有窗口的新的大小。

除非您在窗口最小化時存儲在窗口中,否則無法單獨從此消息中恢復它。

+0

你確定嗎? – Ayrosa 2010-08-18 19:47:14

+0

@jaayrosa http://msdn.microsoft.com/en-us/library/ms632646(VS.85).aspx – 2010-08-18 21:19:17

0

不是直接來自當前參數。

但是,如果您每次收到消息時都存儲傳遞給WM_SIZE的參數,那麼您只需檢查最後傳遞的參數是否爲SIZE_MINIMIZED。

+0

我不想保留一個靜態變量來捕捉先前WM_SIZE中的SIZE_MINIMIZED。 – Ayrosa 2010-08-18 19:39:37

+0

儘管您發表了這樣的評論,但我不得不說這不是唯一的方法,正如羅曼·希普羅所示。 – Ayrosa 2010-08-18 20:04:58

+0

大聲笑,我爲語氣道歉......但羅曼的評論和我的一樣。當他確認 - 你需要存儲最後傳遞給WM_SIZE的值。 Windows API不會爲您存儲WM_SIZE的歷史記錄。 – 2010-08-18 20:08:05

0

GetWindowPlacement Function工作嗎?

檢索指定窗口的顯示狀態和恢復,最小化和最大化位置

+0

這將返回當前的位置,所以如果你在WM_SIZE處理程序中調用它,它會告訴你什麼是WM_SIZE參數已經告訴你。 – 2010-08-18 19:50:29