ComboBox、編集、ExplorerBar、Rebar、タブおよびツールバーなどのコントロールを表すテーマ クラスは、の特定のコントロールのテーマ バリエーションを提供するためにサブクラス化できます。 例えばボタン クラスは、スタート ボタンに適用されるテーマを制御できるように Start::Button としてサブクラス化できます。
Note
このトピックで説明するようなサブクラスを作成するときは注意が必要です。 以降のバージョンの Windows ではサブクラスが変更されたり使用できなくなったりする可能性があるため、サブクラスの使用はお勧めしません。
テーマ サブクラスを使用する 2 つの方法
アプリケーションでは、次の 2 つの方法のいずれかでサブクラス化されたテーマを使用できます。
- OpenThemeData 関数は、pszClassList パラメーター内のフォーム
subclass::classの文字列と併用できます。 - pszSubAppName パラメーターのテーマ サブクラス名を使用すると SetWindowTheme を呼び出すことができます。
ビジュアル スタイルを設定するテーマ メッセージの使用
Rebar やツールバーなどの特定のコントロールは、テーマ サブクラスを使用するようにコントロールに指示するために送信できる特定のメッセージを提供します。 これらのコントロールの場合は、メッセージの lParam パラメーターにテーマ サブクラス名を含むバッファーへのポインターを指定します。 汎用 CCM_SETWINDOWTHEME メッセージを使用するか、次の表に示すような特定のバリアントを使用します。
| コントロール | メッセージ |
|---|---|
| Tooltip | TTM_SETWINDOWTHEME |
| ツール バー | TB_SETWINDOWTHEME |
| Rebar | RB_SETWINDOWTHEME |
| ComboBoxEx | CBEM_SETWINDOWTHEME |
次の表に、Windows Vista で定義されているサブクラスの一部を示します。
| クラス | サブクラス |
|---|---|
| ComboBox |
|
| 編集 |
|
| Rebar |
|
| Tab キー |
|
| ツール バー |
|
Internet Explorer サブクラス
Windows Vista では、クラス自体が使用されていない場合でも、Windows Internet Explorer と Windows Explorer の内部にある特定のクラスのサブクラスを使用できます。 次の表は、使用可能なサブクラスの一覧です。
| クラス | サブクラス |
|---|---|
| AddressBand |
|
| SearchBox |
|
次の表に、これらのクラスの詳細を示します。
| コントロール | 部分 | 状態 |
|---|---|---|
| ADDRESSBAND | ABBACKGROUND | NORMAL (0x1)、HOT (0x2)、DISABLED (0x3)、FOCUSED (0x4) |
| SEARCHBOX | SBBACKGROUND | NORMAL (0x1)、HOT (0x2)、DISABLED (0x3)、FOCUSED (0x4) |