2008-10-20 15 views
10

Estoy tratando de llamar a la función OpenThemeData (vea msdn OpenThemeData) pero no pude determinar cuáles son los nombres de clase aceptables para pasar por el parámetro pszClassList.¿Cuáles son las clases posibles para la función OpenThemeData?

HTHEME OpenThemeData(  
    HWND hwnd, 
    LPCWSTR pszClassList 
); 

¿Alguien podría decirme cuáles son los nombres de clase aceptables que puedo pasar a ese parámetro? Gracias!

Respuesta

5

Puede ver en "AeroStyle.xml" como se indicó en un cartel anterior, que proporciona una lista exacta de Vista/Aero. Sin embargo, si quiere jugar seguro (y probablemente lo haga), los nombres de clase deberían, en general, ser nombres de clase de Windows de los controles comunes de Windows. Por ejemplo, los botones y casillas de verificación usan el nombre de clase "Botón", el control de edición "Editar", etc. Generalmente selecciono el nombre de clase del control que está más cerca de cualquier elemento personalizado en el que esté trabajando, y uso el datos del tema para eso. De esta forma obtendrás un código que funciona con XP, Vista y (con suerte) Windows 7, independientemente de cuál sea el tema seleccionado del usuario.

Sin embargo, a menos que use mucho Win32 sin procesar, probablemente no controle mucho la creación directamente utilizando el nombre de la clase. Los nombres de clase se rocían bastante liberalmente a través de MSDN. Un buen lugar para comenzar suele ser el archivo "CommCtrl.h" de Platform SDK, que tiene muchos de ellos, y siempre se describen en la ayuda de MSDN en los controles comunes individuales. También puede aprenderlos observando cómo se definen los diálogos en archivos .rc abriéndolos en un editor de texto: estos contienen el nombre de clase para los controles.

4

Los nombres de las clases dependen del tema. Por ejemplo, como la documentación para OpenThemeData estados:

Los nombres de clase para el tema Aero se define en AeroStyle.xml, que es que se encuentra en la carpeta Incluya del Microsoft Windows Software Development Kit (SDK) .

0

No tiene nada que ver con Aero, que incluso no sale en XP. Ver el código fuente de OpenThemeData() ..

+0

Aero fue un ejemplo de dónde buscar más información sobre los diversos nombres de clases compatibles con los temas. No debe implicar conexión donde no se especificó ninguna. –

10

El artículo Parts and States en MSDN contiene una tabla que muestra las clases de control , piezas y estados. Los valores en la tabla se definen en Vsstyle.h y Vssym32.h.

Aquí es una referencia rápida:

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 

La respuesta a la pregunta Windows Visual Themes: Gallery of Parts and States? proporciona una "Partes y los Estados Explorer" aplicación donde se puede navegar y probar la mayoría de los estilos.

Cuestiones relacionadas