SetWindowTheme
Hace que una ventana use un conjunto diferente de información de estilo visual del que la clase usa normalmente.
Sintaxis
HRESULT SetWindowTheme( HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList );
Parámetros
- hwnd
- Manipulador de la ventana cuya información de estilo visual será cambiada.
- pszSubAppName
- Puntero a una cadena que contiene el nombre de aplicación a usar en lugar del nombre de la aplicación que invoca a la función. Si este parámetro es NULL, se usa el nombre de la aplicación que invoca a la función.
- pszSubIdList
- Puntero a una cadena que contiene una lista separadas con puntos y coma de nombres CLSID para ser usados en el lugar de la lista actual pasada por la clase de la ventana. Si este parámetro es NULL, se usa la lista ID de la clase que invoca.
Valor de retorno
Si la función tiene éxito, retorna S_OK. En caso contrario, retorna un código de error HRESULT.
Observaciones
El manipulador de temas retiene las asociaciones pszSubAppName y pszSubIdList a lo largo de la vida de la venana, aunque los estilos visuales vuelvan a cambiar. La ventana envía un mensaje WM_THEMECHANGED al final de la llamada a SetWindowTheme, de modo que el nuevo estilo visual puede ser encontrado y aplicado.
Cuando pszSubAppName y pszSubIdList son NULL, el manipulador de temas elimina las asociaciones previamente aplicadas. Se puede evitar que los estilos visuales a una ventana especificada mediante la especificación de una cadena vacía, (L" "), que no coincida con ninguna entrada de la sección.
Ejemplo
El siguiente código de ejemplo da a un control listview la apariencia de una lista del Explorador de Windows:
SetWindowTheme(hwndList, L"Explorer", NULL);