1

私の目標は、長方形ではなく、角を切り取ったグループボックスを描くことです。私は単に角を切り取るという意味ではなく、角が「インデント」されている連続した閉じたパスを持っています。現在のテーマの色やスタイルに合わせて欲しいです。

Windows XPでは、グループボックスに1ピクセルの灰色の線があることに気付きましたが、Windows 7では、白い線(下にある下部を除く内部の白い線)の横に灰色の線を配置することで3D効果が作成されます。灰色の線)。

次のようなものを使用して、グループボックスのテキストラベルの色を取得できます。

COLORREF cref;
GetThemeColor(hTheme, BP_GROUPBOX, GBS_NORMAL, TMT_TEXTCOLOR, &cref);

そこで、グループボックスで使用されている線の色やプロパティを取得する方法を理解しようとしています。そうすれば、グループボックスのスタイルに一致させたい線を描画できるようになります。私が望む形の各部分を別々に描きます。線を記述するためにどのプロパティが使用されているか、または関数lineDrawRectが適切なペンで3D効果を描画するかどうかはわかりません。これらの3D効果(2シェードの平行線)を描画するようにペンを設定する方法はありますか?

ありがとう。

4

1 に答える 1

1

グループボックスについて私がいつも予想外だと思うのは、それらが実際にはボタンのスタイルだということです。(BS_GROUPBOX)。

テーマ グループボックス (クラシック モードがオフの XP 以降) は、VSCLASS_BUTTON でテーマ パーツ BP_GROUPBOX を使用します。通常のテーマ API を使用して取得および描画できます。グループ ボックスにテキストが必要な場合は、DrawThemeText を使用できます。

テーマのないグループ ボックスを描画するための API もありますが (DrawEdge など)、詳細を覚えていません。必要になる可能性は低いです。

いつものように、コントロールの動作を再現することは、想像以上に難しいことを指摘します。

マーティン

于 2011-05-08T22:35:11.667 に答える