Tutorial: estilo XP en VB6 y VB.net

Iniciado por karmany, 5 Agosto 2006, 14:15 PM

0 Miembros y 1 Visitante están viendo este tema.

karmany

INTRODUCCIÓN
[/size]

Como no lo he visto por ningún lado en el foro, voy a hacer un pequeño tute paso a paso de cómo dar la apariencia visual de Windows XP desde Visual Basic 6.

Lo primero y lógicamente hay que tener instalado Windows XP.

Imaginemos que ya tenemos nuestro Proyecto terminado y estamos a punto de compilar. Si ejecutamos el programa desde VB6 veremos cómo los botones, scrollbar, controles... tienen una apariencia muy clásica y muy distinta de la apariencia de Windows XP:


Para conseguir la apariencia de Windows XP tenemos que seguir estos pasos:

1- Lo primero que hay que hacer es añadir al proyecto la función InitCommonControls() del API de Windows.
Esta función carga previamente en memoria la librería de controles comunes de Windows, Microsoft Windows Common Controls (comctl32.dll).
Yo he probado sin utilizar esta función y el programa me ha funcionado bien, pero hay gente que le da error, así que me quito posibles problemas añadiéndola.
¿Cómo la declaramos?. Poniendo en declaraciones:

Private Declare Sub InitCommonControls Lib "comctl32" ()

2-Llamar a esta funcion en el inicio del programa desde el evento Initialize del Formulario o desde Sub Main. Si lo pones en el form_load tampoco funcionará. Yo lo hago así:

Private Sub Form_Initialize()
    InitCommonControls
End Sub



3- Ya podemos compilar nuestro proyecto y generar el ejecutable. Yo lo he llamado: Proyecto1.exe.

4- Ya sólo queda una cosa. Se trata de añadir a nuestra aplicación un recurso con nuestra apariencia XP. Voy a hacerlo muy sencillo y a utilizar un programa gratuito.

Si quieres saber algo más sobre recursos lee mi "tutorial para editar recursos" que es muy interesante:
http://foro.elhacker.net/index.php/topic,134513.0.html

Para hacer esto que he comentado voy a utilizar un programa que es gratuito:
XN Resource Editor. Lo podéis descargar de su página oficial:
http://www.wilsonc.demon.co.uk/d10resourceeditor.htm

Abrimos el XN Resource Editor vamos a File --> Open y seleccionamos nuestro Proyecto1.exe.
Ahora vamos a Resource --> Add resource (Añadir recurso) y seleccionamos
XP Theme Manifest:


Pulsamos OK y nos tiene que haber aparecido una carpeta con nuestro nuevo XP Theme Manifest:



Ya lo hemos hecho todo, ahora sólo tenemos que guardarlo con el nombre que queramos. Lo ejecutamos y...


Ahora ya tenemos el archivo manifest incorporado a nuestra aplicación.

En este punto puede resultar muy curioso y útil poder trabajar en VB6 en modo diseño con estilo XP.
Puedes hacer exactamente todo lo que acabo de explicar: abres el VB6.exe con el XN Resource Editor y sigues los pasos..
Pienso que es la forma más sencilla..
Basado todo en lo mismo, también se puede hacer de esta forma:

Hay que copiar este código XML siguiente en un bloc de notas:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
    name="Woozle.PEResourceExplorer.XPManifest"
    processorArchitecture="x86"
    version="1.0.0.0"
    type="win32"/>
<description>Windows Shell</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
             type="win32"
             name="Microsoft.Windows.Common-Controls"
             version="6.0.0.0"
             processorArchitecture="x86"
             publicKeyToken="6595b64144ccf1df"
             language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>


Y hay que guardarlo con el nombre de la aplicación a la que se va a poner estilo XP + ".manifest".
En este caso de VB6.exe será: VB6.exe.manifest

Solo queda poner este archivo en el mismo directorio que VB6.exe y arreglado..

CONCLUSIONES:
[/size]
La verdad es que es bastante curioso todo esto. Me resultó extraño que en VB posteriores tampoco estuviera el estilo XP, así que preguntando me dijeron que el VB 2005 tenía ya este estilo. Lo probé y es cierto.

Todo esto explicado es para VB6, pero y para VB.NET ¿¿cómo se hace??
Lo he visto muy bien explicado en esta página así que os doy el enlace. Vale tanto para VB.NET como C#:

http://www.elguille.info/NET/dotnet/temasXP.htm

Espero os resulte útil toda esta información..
Un saludo de karmany.


andoba

Mu Online Dev

rob1104

wow excelente, nunca se me hubiera ocurrido... salu2
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.

Grimble Grumble

Muy buena idea la del tutorial !! Ahora, yo tengo una duda, ya que he usado un ocx q cumple con la misma funcion, pero en el caso q el usuario este usando la apariencia comun ("Windows estilo clasico") ¿Hay forma de desactivarlo? Porq en mi caso queda el ocx funcionando y la apariencia es cualquiera... ya q quedan los botones de XP en el estilo clasico... Espero haberme explicado con claridad...

Saludos !
A gnome named Grimble Grumble
And little gnomes stay in their homes
Eating, sleeping, drinking their wine...

crashx13x



Nakp

ps... q lastima.. :-( a mi me aparece cuando ejecuto el programa q la clase no se encuentra... damn it! como lo soluciono compa?

salu2
Ojo por ojo, y el mundo acabará ciego.