我試圖生成一個位圖,其中包含如果將窗口還原到桌面時將顯示的內容。 GetWindowRect返回它最小化的大小,GetWindowplacement返回它將去的地方。但是我找不到一個能夠告訴我它有多大的api。確定窗口恢復大小
如何確定恢復後窗口的大小?
我試圖生成一個位圖,其中包含如果將窗口還原到桌面時將顯示的內容。 GetWindowRect返回它最小化的大小,GetWindowplacement返回它將去的地方。但是我找不到一個能夠告訴我它有多大的api。確定窗口恢復大小
如何確定恢復後窗口的大小?
GetWindowPlacement
確實是你想要的。使用rcNormalPosition
這是一個RECT
包含標準化位置的座標。或者,如果WPF_RESTORETOMAXIMIZED
位於窗口放置flags
中,則使用與該窗口關聯的顯示器的工作區域。
話雖如此,GetWindowPlacement
有時可以在Windows 7上rcNormalPosition
返回誤導性信息。我在使用半屏Aero捕捉功能時遇到過這種情況。在你這樣做之後,如果問你問題時窗口仍然正常化,你會發現GetWindowPlacement
返回rcNormalPosition
a RECT
,它與Aero捕捉位置不匹配。如果窗口標準化,只需使用GetWindowRect
即可解決該問題。
GetWindowPlacement
告訴你窗戶有多大。 rcNormalPosition
字段是一個RECT
給你的尺寸。得到高度和寬度,從底部減去頂部,從右邊減去頂部。
注意MSDN的關於矩形工作空間都評論座標,而不是屏幕座標:
工作區座標從屏幕的不同座標,他們採取的應用工具欄的位置和大小(包括任務欄)成帳戶。工作空間座標(0,0)是工作空間區域的左上角,應用程序工具欄未使用該屏幕區域。
「WINDOWPLACEMENT :: rcNormalPosition」不適合你嗎? – 2012-02-24 16:42:01