AdjustWindowRect文档

MSDN Library将AdjustWindowRect的dwStyle参数logging为:

所需大小将被计算的窗口的窗口样式。 请注意,您不能指定WS_OVERLAPPED样式。

我还没有find任何解释。 他们是什么意思的“不能”,为什么我不能这样做?

Solutions Collecting From Web of "AdjustWindowRect文档"

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; } // ... 

因此,将dwStyle参数设置为0 AdjustWindowRect()不会更改lpRect,因此无法使用WS_OVERLAPPED

如果您希望计算顶级框架的大小,则可以改为使用WS_OVERLAPPEDWINDOWWS_CAPTION|WS_THICKFRAME