2008-10-20 4 views
10

Я пытаюсь вызвать функцию OpenThemeData (см. Msdn OpenThemeData), но я не мог определить, какие допустимые имена классов должны быть переданы параметром pszClassList.Каковы возможные классы для функции OpenThemeData?

HTHEME OpenThemeData(  
    HWND hwnd, 
    LPCWSTR pszClassList 
); 

Может ли кто-нибудь сказать мне, какие допустимые имена классов я могу передать в этот параметр? Спасибо!

ответ

5

Вы можете посмотреть в «AeroStyle.xml» в качестве предыдущего плаката, в котором указан точный список для Vista/Aero. Однако, если вы хотите играть безопасно (и, вероятно, вы это делаете), имена классов должны, в общем, быть именами классов Windows общих элементов Windows. Например, кнопки и флажки используют имя класса «Button», элемент управления редактирования «Редактировать» и т. Д. Обычно я выбираю имя класса элемента управления, наиболее близкое к любому настраиваемому элементу, над которым я работаю, и использую данные темы для этого. Таким образом вы получите код, который работает с XP, Vista и (надеюсь) Windows 7, независимо от того, какая тема пользователя выбрана на самом деле.

Однако, если вы не используете raw Win32 много, вы, вероятно, не делаете большого контроля над созданием напрямую, используя имя класса. Названия классов довольно либерально разбрызгиваются в MSDN. Хорошим местом для запуска обычно является файл CommCtrl.h из Platform SDK, в котором их много, и они всегда описываются в справке MSDN для отдельных общих элементов управления. Вы также можете часто изучать их, рассматривая, как диалоги определены в файлах .rc, открывая их в текстовом редакторе: они содержат имя класса для элементов управления.

4

Названия классов зависят от темы. Например, в качестве документации для OpenThemeData состояний:

имен класса для темы Aero являются определены в AeroStyle.xml, который находится в Include папке Microsoft Windows Software Development Kit (SDK) ,

0

Это не имеет никакого отношения к Aero, который даже не выходит на XP! См исходного кода OpenThemeData() ..

+0

В качестве примера было представлено Aero, где можно найти дополнительную информацию о различных именах классов, поддерживаемых темами. Вы не должны подразумевать соединение, в котором не указано ни одного. – 2008-10-20 17:55:18

10

В статье Parts and States на MSDN содержит таблицу, которая показывает управления классы, частями и состояний. Значения в таблице определены в Vsstyle.h и Vssym32.h.

Вот краткий справочник:

BUTTON, CLOCK, COMBOBOX, COMMUNICATIONS, CONTROLPANEL, DATEPICKER, DRAGDROP, 
EDIT, EXPLORERBAR, FLYOUT, GLOBALS, HEADER, LISTBOX, LISTVIEW, MENU, MENUBAND, 
NAVIGATION, PAGE, PROGRESS, REBAR, SCROLLBAR, SEARCHEDITBOX, SPIN, STARTPANEL, 
STATUS, TAB, TASKBAND, TASKBAR, TASKDIALOG, TEXTSTYLE, TOOLBAR, TOOLTIP, 
TRACKBAR, TRAYNOTIFY, TREEVIEW, WINDOW 

Ответ на вопрос Windows Visual Themes: Gallery of Parts and States? обеспечивает «Части и государство Проводник» приложения, где вы можете просматривать и тестировать большинство стилей.

 Смежные вопросы

  • Нет связанных вопросов^_^