如何确定是否使用Aero Snap feature来调整窗口大小? GetWindowPlacement
函数给出了最新的“恢复”窗口大小。我用它如下:GetWindowPlacement给出不正确的窗口位置
WINDOWPLACEMENT wp = {};
wp.length = sizeof(WINDOWPLACEMENT);
::GetWindowPlacement(hWnd, &wp);
例如,它给wp.rcNormalPosition = {top=208 bottom=520 left=152 right=510}
,当它应该是 {top=0 bottom=1920 left=152 right=510}
。
请注意,
这是我的错,GetWindowRect
给出完全相同的错误结果。
GetWindowRect
给出了正确的结果。
我需要在程序出口保存窗口状态并在开始时加载它,所以我需要知道窗口的放置方式。我怎样才能找出实际的窗口坐标?
好吧,我notepad.exe
(和其他一些标准的Windows组件)提出了几项测试,它以同样的方式—不记得是否是“啪”保存其状态。所以我想这是Windows程序的预期行为。
GetClientRect给出了什么?如果客户端大小大于窗口大小,这是一个线索,有什么不对劲。 “DWMWA_EXTENDED_FRAME_BOUNDS”,在GetWindowRect注释中提到,它有助于获得Aero窗口的界限吗? – 2011-04-15 15:15:22
看起来可能是[GetWindowRect在Windows 7上太小]的愚蠢(http://stackoverflow.com/questions/3192232/getwindowrect-too-small-on-windows-7) – 2011-04-15 15:23:36
@ben这是我的经验GetWindowRect返回正确的值,但GetWindowPlacement是有问题的。 – 2011-04-15 16:16:52