使用主题子类

可以对表示 ComboBox、Edit、ExplorerBar、Rebar、Tab 和 Toolbar 等控件的主题类进行子类化,以便为特定控件提供不同的主题。 例如,Button 类可被子类化为 Start::Button,以便对应用于 Start 按钮的主题进行控制。

备注

在创建子类(如本主题中讨论的子类)时,请务必保持谨慎。 由于子类可能会在 Windows 的后续版本中被更改或不可用,因此不建议使用它们。

 

使用主题子类的两种方法

应用程序可以通过以下两种方式之一来使用子类化主题:

  • 它可以将 OpenThemeData 函数与 pszClassList 参数中 subclass::class 形式的字符串一起使用。
  • 它可以通过 pszSubAppName 参数中的主题子类名称来调用 SetWindowTheme

使用设置视觉样式的主题消息

某些控件(如 Rebar 和工具栏)提供了特定的消息,可以发送这些消息来指示控件使用主题子类。 对于这些控件,请在信息的 lParam 参数中提供一个指向包含主题子类名称的缓冲区指针。 使用通用的 CCM_SETWINDOWTHEME 消息,或者使用下表所示的特定变体。

控制 Message
Tooltip TTM_SETWINDOWTHEME
Toolbar TB_SETWINDOWTHEME
Rebar RB_SETWINDOWTHEME
ComboBoxEx CBEM_SETWINDOWTHEME

 

下表列出了 Windows Vista 定义的一些子类。

子类
ComboBox
  • Address
  • AddressComposited
  • InactiveAddress
  • InactiveAddressComposited
  • MaxAddress
  • MaxAddressComposited
  • MaxInactiveAddress
  • MaxInactiveAddressComposited
编辑
  • Address
  • 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
制表符
  • BrowserTab
Toolbar
  • 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)