7

MSDNライブラリには、AdjustWindowRectのdwStyle引数が次のように記載されています。

必要なサイズを計算するウィンドウのウィンドウスタイル。WS_OVERLAPPEDスタイルは指定できないことに注意してください。

これについての説明は見つかりませんでした。「できない」とはどういう意味ですか、なぜできないのですか?

4

1 に答える 1

13

スタイルは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;
}
// ...

したがってAdjustWindowRect()、dwStyleパラメータをに設定する0とlpRectは変更されないため、WS_OVERLAPPED使用できません。

トップレベルフレームのサイズを計算する場合は、WS_OVERLAPPEDWINDOWまたはWS_CAPTION|WS_THICKFRAME代わりにを使用できます。

于 2012-12-10T01:07:15.083 に答える