Использование подклассов темы

Классы темы, представляющие такие элементы управления, как ComboBox, Edit, ExplorerBar, Rebar, Tab и Панель инструментов, можно подклассить, чтобы предоставить варианты темы для этого конкретного элемента управления. Например, класс "Кнопка" является подклассом Start::Button, чтобы обеспечить контроль над темой, примененной к кнопке "Пуск".

Заметка

Используйте осторожность при создании подклассов, таких как те, которые рассматриваются в этом разделе. Так как подклассы могут быть изменены или недоступны в последующих версиях Windows, их не рекомендуется использовать.

 

Два способа использования подкласса темы

Приложение может использовать подклассированную тему одним из следующих двух способов:

  • Он может использовать функцию OpenThemeData со строкой вида subclass::class в параметре pszClassList .
  • Он может вызывать SetWindowTheme с именем подкласса темы в параметре pszSubAppName.

Использование сообщений темы, которые задают визуальный стиль

Некоторые элементы управления, такие как перебар и панель инструментов, предоставляют определенные сообщения, которые можно отправить, чтобы указать элементу управления использовать подкласс темы. Для этих элементов управления укажите указатель на буфер, содержащий имя подкласса темы в параметре lParam сообщения. Используйте универсальное CCM_SETWINDOWTHEME сообщение или используйте конкретный вариант, как показано в следующей таблице.

Контроль Сообщение
Подсказка TTM_SETWINDOWTHEME
Панель инструментов TB_SETWINDOWTHEME
Арматура RB_SETWINDOWTHEME
ComboBoxEx CBEM_SETWINDOWTHEME

 

В следующей таблице перечислены некоторые подклассы, которые определяет Windows Vista.

Класс Подклассы
ComboBox
  • Адрес
  • AddressComposited
  • Неактивный адрес
  • НеактивныйАдресСоставленное
  • MaxAddress
  • MaxAddressComposited
  • МаксимальноНеактивныйАдрес
  • MaxInactiveAddressComposited
Редактировать
  • Адрес
  • КомпозитныйАдрес
  • Неактивный адрес
  • НеактивныйАдресКомбинированный
  • РедактированиеНеактивногоПоляПоиска
  • InactiveSearchBoxEditComposited
  • MaxAddress
  • MaxAddressComposited
  • МаксимальноНеактивныйАдрес
  • MaxInactiveAddressComposited
  • MaxInactiveSearchBoxEdit
  • MaxInactiveSearchBoxEditComposited
  • MaxSearchBoxEdit
  • MaxSearchBoxEditComposited
  • SearchBoxEdit
  • SearchBoxEditComposited
Арматура
  • Панель вкладок браузера
  • Неактивная панель навигации
  • InactiveNavbarComposited
  • MaxInactiveNavbar
  • MaxInactiveNavbarComposited
  • MaxNavbar
  • MaxNavbarComposited
  • Панель навигации
  • КомпозицияНавигационнойПанели
  • NavbarNonTopmost
Вкладка
  • Вкладка браузера
Панель инструментов
  • Вперёд
  • GoComposited
  • InactiveGo
  • InactiveGoComposited
  • MaxGo
  • MaxGoComposited
  • MaxInactiveGo
  • MaxInactiveGoComposited
  • Кнопка поиска
  • КнопкаПоискаКомпозитная
  • Путешествовать
  • TravelComposited

 

Подклассы Internet Explorer

В Windows Vista подклассы определённых классов, принадлежащих Windows Internet Explorer и Windows Explorer, доступны, даже если сами классы недоступны. В следующей таблице перечислены доступные подклассы.

класс Подкласс
Адресная полоса
  • AB
  • ABGreen
  • ABGreenComposited
  • ABRed
  • ABRedComposited
  • ABYellow
  • ABYellowComposited
Поле поиска
  • InactiveSearchBox
  • InactiveSearchBoxComposited
  • МаксимальноеВремяНеактивностиПоисковойПанели
  • MaxInactiveSearchBoxComposited
  • MaxSearchBox
  • MaxSearchBoxComposited
  • SearchBoxComposited

 

В следующей таблице показаны особенности этих классов.

Контроль Часть Штаты
ADDRESSBAND ABBACKGROUND НОРМАЛЬНО (0x1), ГОРЯЧО (0x2), ОТКЛЮЧЕНО (0x3), В ФОКУСЕ (0x4)
Поле поиска SBBACKGROUND НОРМАЛЬНЫЙ (0x1), ГОРЯЧИЙ (0x2), ОТКЛЮЧЕН (0x3), В ФОКУСЕ (0x4)