Ejemplos usando el Api de windows para Visual basic

197 - Cambiar la apariencia de temas windows xp a estilo clásico solo para el formulario

<Volver> - Anterior - Siguiente



 

 

Ejemplo que usa la función del Api SetWindowTheme para cambiar y reestablecer el estilo windows xp y el estilo clásico solo para la ventana o control indicado

 

La función requiere indicar el Hwnd de la ventana a cambiar el estilo, obviamente el tema xp debe estar activo en windows para poder usar esta función

 

Vista de la ventana con estilo clásico

vista del formulario con el estilo de ventana clásico

 

Ejemplo

Colocar dos botones y el siguiente código en el form

 

Código fuente en Form1

 

 


 

Este otro ejemplo, cambia el estilo de todos los formularios abiertos en el proyecto, recorriendo los mismos en un bucle por medio de la colección Forms

 

Controles

Agregar tres formularios: Form1 , Form2 y Form3

Añadir dos Commmand en el formulario 1

Código fuente en form1

 

Nota: también puede darse el caso de que, teniendo el tema xp activo en windows, se quiera quitar el estilo xp de algunos controles o de todos, por ejemplo el control ListView, el listbox y otros que poseen scrollbar estilo xp, se muestran por mas que no usemos un archivo Manifest

 

vista de los controles sin el tema xo activado

 

Para eliminar y quitar dicho estilo, se puede realizar igual que en el caso de los formularios, pasando el Hwnd del control, pero luego de ejecutar la función Api, hay que forzar el repintado del mismo para poder visualizar el cambio ( Esto no es necesario si se ejecuta en la carga de la venatana, y tampoco es necesario si los controles no poseen scrollBar ) .

Para repintar el control habría que recurrir al api de windows ya que no sirve utilizar el método refresh del control

Un truco simple de forzar el repintado , es usar la propiedad visible para ocultarlo y luego mostrarlo inmediatamente , no es lo ideal pero funciona . Al final del ejemplo hay una maner hjaciendo una llamada al api SetWindoPos

 

Ejemplo

Nota: tener el tema xp activado en windows

 

Código fuente en el formulario

 

Nota para repintar el control se puede usar el api SetWindowPos, en ves de ocultar y visualizar el conttrol

Ejemplo

 

Y la llamada a SetWindowPos , por ejemplo para repintar el control Listbox

Call SetWindowPos(List1.hWnd, 0, 0, 0, 0, 0, SWP_Flags)

 


Enlaces relacionados



Buscar en Recursos vb