2012-02-09 15 views
9

Win32 se ve desagradable, ¿cómo hacer que se vea mejor por las máscaras personalizadas?Cómo pelar una aplicación Win32

que quiere decir algo así como productos de Adobe, iTunes, Autodesk Softimage XSI y 3dsmax, reproductor multimedia de Windows, licuadora, Comodo Firewall, Winamp, cliente Babilonia, y unos gestores de descarga etc.;

hay muchas aplicaciones similares pero no encuentro ningún tutorial o guía adecuada, ¡parece una receta secreta!

tutoriales única -dos- disponibles en línea:

viejo e inútil: http://www.codeproject.com/Articles/20497/Draw-Skin-Window-Using-Pure-Win32-API

solamente cubren fondo opaco (y esto es lo evito, necesito más información sobre los componentes GUI): http://www.flipcode.com/archives/Win32_Window_Skinning.shtml

¿Hay algún libro o una guía adecuada para aprender a construir pieles para Win32api?

Editar: Acepto comentario David Rodríguez, allá abajo ↓↓

+9

Cómo desollar una aplicación Win32: suponiendo que ya hayas buscado la aplicación, necesitarás un cuchillo muy filoso. Mantenga la aplicación de ... (perdón por la mala broma) –

+2

Si supiera cómo, lo ayudaría, pero no he hecho ningún desarrollo de Win32, y casi ningún desarrollo de UI tampoco, así que no puedo ayudar. Lo siento. (Por cierto: estuve aquí porque básicamente leí todas las preguntas con la etiqueta C++ --cuando encuentro el tiempo al menos) –

+1

@macbirdie: Honestamente, lo olvido, después de leer algunos documentos (con * David * broma en mente) , Puedo imaginarme el éxito a los 50 años, así que decidí enfocarme en estudios más útiles: creo que el tema moderno está bien, pero el rendimiento no está todavía, esperamos con ansias el Windows 8, ¡gracias por tu comentario! ;) – sysop

Respuesta

3

he hecho esto antes de usar C++ Builder. El enfoque que tomé fue crear un formulario, configurarlo sin bordes y colorear todo el formulario del mismo color. Luego configuro la transparencia del formulario a este color. Luego agrego imágenes al formulario que crea la máscara deseada.

Estoy seguro de que todo esto se puede hacer a través de API de victoria estándar, pero no puedo describir (o aconsejar) hacerlo únicamente a través de llamadas de API.

+1

Gracias Jonathan, tengo una pregunta: cómo lidiar con los componentes de la GUI, como controles deslizantes de rango, desplazamientos, cuadros de lista, menús desplegables, botones de radio, etc., no se puede simplemente aplicarles una imagen transparente, ¿o sí? – sysop

+1

@Jonathan, ¿ha mirado el nuevo motor de Estilos introducido en C++ Builder XE2 para el skinning personalizado? –

+0

@ RemyLebeau-TeamB, todavía no tengo XE2 :(¿El motor de estilos simplifica todo ese proceso? – Jonathan

2

El sistema operativo maneja "skinning" automáticamente.

En el modo "clásico" (o Windows 2000 y versiones anteriores), esto le proporciona una interfaz de aspecto clásico. Las ventanas se dibujan como siempre lo estuvieron desde Windows 95. Presumiblemente, esto es a lo que te refieres cuando dices que "Win32 se ve desagradable". Sin embargo, debe tener en cuenta que a muchas personas les gusta este aspecto y específicamente optan por habilitarlo en sus máquinas. [ADVERTENCIA: Opinión personal que viene] soy una de esas personas, ya juzgar por las imágenes que consiguen publicadas aquí en las máquinas de los desarrolladores, definitivamente no soy el único.

Windows XP realmente presenta el motor "skinning" o de tematización, que vive en un conjunto de archivos DLL de Windows. Por explicitly linking to version 6 of ComCtl32.dll, su aplicación obtendría automáticamente estos efectos visuales. Algunas personas dijeron que esta versión de Windows parecía "Fisher-Price", mientras que otros estaban perfectamente contentos con el término "chillón". La opción se retuvo para permitir al usuario cambiar al tema "clásico" (como se describe arriba), si así lo desea.

Windows Vista revisó por completo el motor de temas de Windows e introdujo una nueva interfaz de usuario conocida como "Aero". Esto proporciona ventanas y controles de aspecto llamativo, completos con efectos de transparencia, es decir, siempre que su tarjeta gráfica lo admita. De nuevo, al vincular explícitamente a la versión 6 de ComCtl32.dll, su aplicación automáticamente aplicaría todos estos estilos.

Vale la pena señalar que a través de todo esto, Microsoft ha proporcionado a los usuarios la capacidad de personalizar los colores (y fuentes y otras cosas) utilizados en la interfaz de usuario. Por ejemplo, Aero está predeterminado en azul. Si no te gusta el azul, puedes cambiarlo. Cambio mis colores UI periódicamente por diversión y para volver a energizarme. Si no puede leer o no le gusta la fuente, la cambia también.

Por lo tanto, si decide hacer algo diferente con su aplicación, la definición de su propia paleta de colores personalizada y haciendo caso omiso de las opciones elegidas por el usuario a través de la interfaz de personalización proporcionada, su aplicación se va a ver rota y sobresalir como un pulgar dolorido en el escritorio del usuario. Al diseñar una interfaz de usuario, la última cosa que desea hacer es ser o verse diferente.

En resumen, actualice su computadora a Windows Vista o posterior y habilite la interfaz Aero si lo desea. No anule al usuario ni intente dibujar todos sus controles personalizados. Simplemente terminará con una aplicación que es difícil de usar, no funciona como se esperaba, tiene un dolor en la parte trasera para mantenerse, y en general se ve peor que si simplemente lo hubiera dejado en paz.

+6

Esto no responde la pregunta en absoluto @CodyGray. La pregunta del OP no fue: "¿Es una buena idea hacer un diseño de IU personalizado?", sino más "¿Cómo podemos hacerlo?". – Basj

2

Si no tiene miedo de aprender a utilizar la programación de bajo nivel SDK, entonces prueba este enlace: Take control of your window code

También hacer una búsqueda en Google de WinLIFT.

+0

WinLIFT está muriendo la tecnología ... detenido con Windows 7. – Lothar

Cuestiones relacionadas