2012-02-24 90 views
1

我試圖生成一個位圖,其中包含如果將窗口還原到桌面時將顯示的內容。 GetWindowRect返回它最小化的大小,GetWindowplacement返回它將去的地方。但是我找不到一個能夠告訴我它有多大的api。確定窗口恢復大小

如何確定恢復後窗口的大小?

+2

「WINDOWPLACEMENT :: rcNormalPosition」不適合你嗎? – 2012-02-24 16:42:01

回答

4

GetWindowPlacement確實是你想要的。使用rcNormalPosition這是一個RECT包含標準化位置的座標。或者,如果WPF_RESTORETOMAXIMIZED位於窗口放置flags中,則使用與該窗口關聯的顯示器的工作區域。

話雖如此,GetWindowPlacement有時可以在Windows 7上rcNormalPosition返回誤導性信息。我在使用半屏Aero捕捉功能時遇到過這種情況。在你這樣做之後,如果問你問題時窗口仍然正常化,你會發現GetWindowPlacement返回rcNormalPosition a RECT,它與Aero捕捉位置不匹配。如果窗口標準化,只需使用GetWindowRect即可解決該問題。

4

GetWindowPlacement告訴你窗戶有多大。 rcNormalPosition字段是一個RECT給你的尺寸。得到高度和寬度,從底部減去頂部,從右邊減去頂部。

注意MSDN的關於矩形工作空間都評論座標,而不是屏幕座標:

工作區座標從屏幕的不同座標,他們採取的應用工具欄的位置和大小(包括任務欄)成帳戶。工作空間座標(0,0)是工作空間區域的左上角,應用程序工具欄未使用該屏幕區域。