2

アプリケーションのウィンドウのキャプション バーを自己描画したいので、OnNcPaint() メソッドをオーバーライドすることにしました。しかし、キャプション バーの高さを変更する方法がわかりません。GetSystemMetrics(SM_CYCAPTION) を使用するたびに、同じ値が返されます。

誰かがそれを行う方法を教えてもらえますか? ありがとうございました!

4

2 に答える 2

4

Windows で描画される通常のキャプション バーのサイズは変更できません。これは、ユーザー設定とテーマによって決まります。自分で物を描いている場合は、キャプションの寸法も自分で定義します。好きな場所に好きなようにペイントできるため、通常はクライアント領域と見なされる場所にキャプション バーをペイントできます。その余分な領域を実際にキャプション バーであるかのように動作させるには、wm_NCHitTestメッセージを処理して を返しhtCaptionます。

GetSystemMetricsパラメータの 1 つとしてウィンドウ ハンドルを受け入れないことに注意してください。つまり、ウィンドウ固有のメトリックを返すことはできません。その名前が示すように、システム全体のメトリックを提供します。

于 2008-12-30T06:54:03.300 に答える
0

キャプションをいじる代わりに、まったく使用しないでください。代わりに、独自のキャプションを「発明」してください。TPanel をウィンドウの上部に配置するように設定し、それをそのウィンドウのキャプションとして使用します。

于 2010-07-29T02:54:53.580 に答える