MSDN Library将AdjustWindowRect的dwStyle参数记录为:
要计算所需大小的窗口的窗口样式。请注意,你不能 指定WS_OVERLAPPED样式。
我没有找到任何解释。他们是什么意思“不能”,为什么我不能这样做?
答案 0 :(得分:11)
WS_OVERLAPPED
样式定义为零:
#define WS_OVERLAPPED 0x00000000L
AdjustWindowRect()
正在检查提供的样式标志并相应地修改RECT:
// ...
if( dwStyle & WS_BORDER ) {
const int cx = GetSystemMetrics(SM_CXBORDER);
const int cy = GetSystemMetrics(SM_CYBORDER);
lpRect->top -= cy;
lpRect->left -= cx;
lpRect->right += cx;
lpRect->bottom += cy;
}
// ...
因此,将{0}设置为AdjustWindowRect()
的{{1}}不会改变lpRect,因此无法使用0
。
如果您希望计算顶级框架的尺寸,可以改用WS_OVERLAPPED
或WS_OVERLAPPEDWINDOW
。