确定恢复的窗口大小

determining windows restored size

本文关键字:窗口大小 恢复      更新时间:2023-10-16

我正在尝试生成一个位图,其中包含将窗口恢复到桌面时将显示的内容。GetWindowRect返回它的最小化大小,GetWindowplacement返回它要去的地方。但我找不到一个api告诉它有多大

如何确定如果恢复,窗口会有多大?

GetWindowPlacement确实是您想要的。使用rcNormalPosition,它是包含归一化位置坐标的RECT。或者,如果WPF_RESTORETOMAXIMIZED位于窗口位置flags中,则使用与该窗口相关联的监视器的工作区域。

话虽如此,GetWindowPlacement有时会在Windows7上的rcNormalPosition中返回误导性信息。当你使用半屏幕Aero快照功能时,我会遇到这种情况。执行此操作后,如果在提问时窗口仍然正常化,则会发现GetWindowPlacementrcNormalPosition中返回与Aero捕捉位置不匹配的RECT。如果窗口已规范化,则只需使用GetWindowRect即可处理此问题。

GetWindowPlacement>告诉您窗口的大小。rcNormalPosition字段是一个RECT,为您提供尺寸。得到高度和宽度,从下减去上,从左减去右。

请注意MSDN关于矩形位于工作区坐标,而非屏幕坐标的评论:

工作区坐标与屏幕坐标的不同之处在于,它们考虑了应用程序工具栏(包括任务栏)的位置和大小。工作空间坐标(0,0)是工作空间区域的左上角,应用程序工具栏不使用屏幕区域。