2012-02-24 64 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)是工作空间区域的左上角,应用程序工具栏未使用该屏幕区域。