calculate-window-size-in-vista
Usually, we use GetWindowRect
to calculate windows size in windows. It works always right until vista comes.
Under Vista, if you still use GetWindowRect
to retrieve windows rectangle size, you can not always get the collect value.
For some windows which can not be resized, the function return bigger size than it is.
The problem is caused of the new Desktop Window Management features, exactly, extending frame.
To resolve the problem, you can use DWM api, DwmGetWindowAttribute
, instead of the GetWindowRect
before Microsoft fixed it.
The api which can be used like following,
DwmGetWindowAttribute(h_wnd, DWMWA_EXTENDED_FRAME_BOUNDS, &rt_target_wnd, sizeof(RECT)); |