1

AHK フォーラムのこのスレッドで、次の回答を受け取りました。

コントロールはクライアント領域よりも大きくなりますが、常にクライアント ウィンドウの「下」または限定されます。

これを読んで、クライアント領域の幅についてかなり混乱しました。クライアント領域の幅は、すべてのコントロールの幅の合計に等しいと常に考えていました (それらがすべて 1 つの水平線に配置され、ウィンドウにその 1 つの線しかない場合)、およびそれらの間の距離、および余白 (ウィンドウの境界線と最初のコントロールの間の距離、および最後のコントロールと境界線の間の距離) を加えたものですが、それを想定していたのは間違っていたようです。

GUI コントロールの幅とクライアント領域の幅の関係を教えてください。私はそこでこの質問をしましたが、そこでの答えはすぐには出てこないようです。

4

1 に答える 1

1

コントロールの非クライアント領域は、ボーダー/タイトルバーなどで、通常、テーマの一貫したスタイルでウィンドウによって描画されます。

クライアント領域は境界のすべてです。コントロールを一意にする部分であり、通常は描画時にアクセスします。

Windows はウィンドウに次の 2 つのメッセージで自分自身を描画するように指示します。WM_NCPAINT-たとえばトップレベル ウィンドウWM_PAINTのデフォルトの処理では、ウィンドウに設定されたスタイル フラグと現在のテーマに従って、境界線/タイトル バーが描画されます。WM_NCPAINTのデフォルトの処理WM_PAINTは何もしません (背景色は WM_ERASEBKGND によって処理されます)。

于 2011-03-16T01:29:59.470 に答える