テーマ サブクラスの使用

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
  • 番地
  • AddressComposited
  • InactiveAddress
  • InactiveAddressComposited
  • MaxAddress
  • MaxAddressComposited
  • MaxInactiveAddress
  • MaxInactiveAddressComposited
編集
  • 番地
  • AddressComposited
  • InactiveAddress
  • InactiveAddressComposited
  • InactiveSearchBoxEdit
  • InactiveSearchBoxEditComposited
  • MaxAddress
  • MaxAddressComposited
  • MaxInactiveAddress
  • MaxInactiveAddressComposited
  • MaxInactiveSearchBoxEdit
  • MaxInactiveSearchBoxEditComposited
  • MaxSearchBoxEdit
  • MaxSearchBoxEditComposited
  • SearchBoxEdit
  • SearchBoxEditComposited
Rebar
  • BrowserTabBar
  • InactiveNavbar
  • InactiveNavbarComposited
  • MaxInactiveNavbar
  • MaxInactiveNavbarComposited
  • MaxNavbar
  • MaxNavbarComposited
  • Navbar
  • NavbarComposited
  • NavbarNonTopmost
Tab キー
  • BrowserTab
ツール バー
  • Go
  • GoComposited
  • InactiveGo
  • InactiveGoComposited
  • MaxGo
  • MaxGoComposited
  • MaxInactiveGo
  • MaxInactiveGoComposited
  • SearchButton
  • SearchButtonComposited
  • 移動
  • TravelComposited

 

Internet Explorer サブクラス

Windows Vista では、クラス自体が使用されていない場合でも、Windows Internet Explorer と Windows Explorer の内部にある特定のクラスのサブクラスを使用できます。 次の表は、使用可能なサブクラスの一覧です。

クラス サブクラス
AddressBand
  • AB
  • ABGreen
  • ABGreenComposited
  • ABRed
  • ABRedComposited
  • ABYellow
  • ABYellowComposited
SearchBox
  • InactiveSearchBox
  • InactiveSearchBoxComposited
  • MaxInactiveSearchBox
  • MaxInactiveSearchBoxComposited
  • MaxSearchBox
  • MaxSearchBoxComposited
  • SearchBoxComposited

 

次の表に、これらのクラスの詳細を示します。

コントロール 部分 状態
ADDRESSBAND ABBACKGROUND NORMAL (0x1)、HOT (0x2)、DISABLED (0x3)、FOCUSED (0x4)
SEARCHBOX SBBACKGROUND NORMAL (0x1)、HOT (0x2)、DISABLED (0x3)、FOCUSED (0x4)