0

WindowsOS用のEmbarcaderoVCLc++IDEを使用してGUIアプリケーションを開発しています。このプロジェクトの一環として、外部の状態に応じてボタンの色を変更する必要があります。windows32APIではボタンの色を変更できないことを理解しました。ボタンの色を変える方法を教えてください。

4

1 に答える 1

0

ボタンの背景色またはテキスト色を変更しますか?

ウィンドウはしばらくの間ビジュアル テーマを使用してきたため、commctrl をロードしてマニフェスト ファイルを含めると、ボタンはデフォルト (現在の) テーマを使用して描画されます。

私が見ることができるオプションには、(a)背景のカスタム描画、(b)通常の描画プロセスでのテキスト色の変更、(c)テーマなしでのボタンの描画(つまり、「フラット」ボタンの描画)が含まれます。

ボタンの状態に応じてビットマップを変更するだけで、ビットマップ ボタンを描画できます。状態に応じて、HSL または HSV 色空間を使用して着色する単一のビットマップを使用することもできます。

フラットタイプのボタンに関しては、テキストの色を変更できるのとほぼ同じ方法で、おそらく背景色を変更できると思います-標準の描画プロセス中に介入し、3D_FACEから色を変更します(またはそれが何であれは、忘れました)あなたが望むものに。

Windows XP に含まれている電卓を見ると、テキストの色を変更する例を見ることができます。

CodeProject.com には、この取り組みに役立つ記事が山積みになっている可能性があります。:)

于 2013-02-22T06:22:17.910 に答える