1

Visual Studio 2010 vc++ でプロジェクトを実行しました。WNDCLASS を使用して実行時に複数のウィンドウを作成しました。作成時にすべてのウィンドウに適用されるカラー テーマを作成したいと考えています。

  1. デフォルトのウィンドウの色定数を希望の色に変更する方法はありますか? たとえば、COLOR_BTNFACE の値を変更すると、参照されたすべてのウィンドウ ボタンが自動的に更新されます。
  2. 使用されている色を手動で検索して置き換えることなく、プロジェクトにカスタム テーマを実装する他の方法はありますか??

よろしくお願いします

4

1 に答える 1

0

別のテーマを適用するために実行時にすべてのウィンドウの背景色を変更するには、あなたの側で実装作業が必要です。私の知る限り、これを行うメカニズムはありません。

Windows アプリケーションを作成していて、実行時にテーマをサポートしたいとします。

私がしないこと: 独自のウィンドウ クラス (WNDCLASS) を作成し、好きな背景色 (HBRUSH hbrBackground) を設定して、このウィンドウ クラスからすべてのウィンドウを作成できます。ウィンドウの各クラス (ボタン、スライダー、ポップアップ ウィンドウなど) に対してウィンドウ クラスを作成する必要があり、すべてのウィンドウを再作成しないと実行時にこれを変更できないため、これにはいくつかの重大な欠点があります。

私がすること: アプリケーションが作成するすべてのウィンドウに共通の基本クラスを導入します。その基本クラスには、背景色などのものが含まれています (他の一般的な便利なものの中でも)。別の背景色を適用する場合は、すべてのウィンドウにその変更を (setBackgroundColor() を介して) 伝えて、コンテンツを再描画できるようにする必要があります。

それが役立つことを願っています。

于 2013-09-20T13:24:42.980 に答える