Diseño personalizado de aplicacion grafica

Iniciado por peternash, 18 Octubre 2012, 15:26 PM

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

peternash

Yo llevo un tiempo programando y he visto que mis programas desarrollados en C con la biblioteca Win32 API siempre tienen un diseño aburrido y poco personalizable.

He visto programas como el CCleaner, TuneUp, Photoshop o el Opera que tienen su propia barra de título, controles, etc con diseño personalizado y todo eso, pero yo no sé cómo lograr eso, por lo menos con Win32 API.

Sé que se pueden crear botones, Static y demás con estilo Owner-Draw, pero no sé cómo crear una barra de titulo, ventana, formas, etc personalizadas.

Con GTK+ tambien veo eso de que quedan un poco grises los programas.

Si alguien tiene un método, funcion o lo que sea en Win32 api que me permita crear aplicaciones graficas con diseño personalizado se lo agradecería.

EDIT: ya busqué cientos de veces en Google y sólo me devuelve resultados basura
EDIT 2: no busco saber qué bibliotecas gráficas puedo usar para crear una GUI  como si fuera un usuario recien iniciado en la programacion grafica, sino que lo que deseo es algun método para crear ventanas con diseño personalizado, si existe en el WinAPI o donde sea


Nota: Si omiti alguna regla del foro con este mensaje, por favor notifiquenme o que un moderador lo corrija.

yoxter

prueba wxwidgets o QT, te recomiendo este ultimo que soporta mas plataformas.



Posiblemente soy el intento de programador mas fracaso de la historia !!

x64core

#2
con W32 podeis hacer todo lo que se puede hacer con cualquier libreria y todo lo que puedesde mirar sobre el monitor, otra cosa
es que tu no tengas los conocimientos suficientes para hacerlo, esas librerias hacen un poco más facil tu trabajo, pero en contraparte agregan miles de lineas de codigo que con w32 seria mucho menos, aparte que hacen lento tu programa, bueno
si quereis algo optimo hacedlo con w32 de lo contrario con cualquier otra libreria, esto no incluye OpenGL, o asuntos de graficos 3D,
donde requiere el uso de GPU,GPU2.
aunque con un procesador avanzado se podrían hacer muchas algunas figuras 3D utilizando la tecnologia SSE4 y MMX + W32
sin necesidad de esas libreria, alfin y al cabo esas librerias terminan usando siempre la CPU o GPU.

peternash

Cita de: RHL en 18 Octubre 2012, 22:40 PM
con W32 podeis hacer todo lo que se puede hacer con cualquier libreria y todo lo que puedesde mirar sobre el monitor, otra cosa
es que tu no tengas los conocimientos suficientes para hacerlo, esas librerias hacen un poco más facil tu trabajo, pero en contraparte agregan miles de lineas de codigo que con w32 seria mucho menos, aparte que hacen lento tu programa, bueno
si quereis algo optimo hacedlo con w32 de lo contrario con cualquier otra libreria, esto no incluye OpenGL, o asuntos de graficos 3D,
donde requiere el uso de GPU,GPU2.
aunque con un procesador avanzado se podrían hacer muchas algunas figuras 3D utilizando la tecnologia SSE4 y MMX + W32
sin necesidad de esas libreria, alfin y al cabo esas librerias terminan usando siempre la CPU o GPU.

entonces, para crear un programa de escritorio con un fondo personalizado y una barra de título, menus, controles, etc que utilicen un tema personalizado, deberé dibujar todo desde cero con OpenGL o que?

me dices que Win32 basta para hacer un diseño más agradable? cómo lo haces?



Por el consumo de GPU/CPU en principio no te preocupes mucho, porque no tengo planeado nada demasiado complicado.


x64core

Cita de: peternash en 21 Octubre 2012, 22:50 PM
entonces, para crear un programa de escritorio con un fondo personalizado y una barra de título, menus, controles, etc que utilicen un tema personalizado, deberé dibujar todo desde cero con OpenGL o que?

me dices que Win32 basta para hacer un diseño más agradable? cómo lo haces?



Por el consumo de GPU/CPU en principio no te preocupes mucho, porque no tengo planeado nada demasiado complicado.



Eso que necesitas hacer es suficiente la W32, generalmente la gente tiene la barra dibujada ( si lo es tan personalizada, aunque incluso
se puede hacer con las GDI, GDI+ pero la gente por comodidad hace con photoshop la barra botones y fondo y sus demás personalizaciones)
y tendrás que jugar un poco con los contexto de dispositivos que ofrece windows; esto es, las famosas mascaras así poder ocultar un
X color ( el cual windows se encarga que establecer a 0 cada bit de tu aplicación por supuesto ) y quedan visible el resto de los bits de las
demás aplicaciones, con ese metodo tambíen sirve para hacer formularios con "formas", etc.

Podes empezarte mirándote las funciones GDI que ofrece Windows, Más específicamente win32k.sys que es el controlador que manipula las funciones graficas y mensajes
de windows. por ejemplo: http://msdn.microsoft.com/en-us/library/windows/desktop/dd183370(v=vs.85).aspx esta funcion es la nativa para esas tareas, con ella
puedes hacer graficos 2D muy facilmente y no es complicada de usar simplemente tienes que pasarle una mascara de bits indicandole un contexto de dispositivo de
entrada y un contexto de dispositivo de destino.

Wikipedia lo deja claro:
http://es.wikipedia.org/wiki/Bit_blit

Todo eso es muy optimizada y facil de editar y organizar usando C++ ( no C) debido a que estamos hablando de POO.

Una introducción al tema:
http://www.winprog.org/tutorial/bitmaps.html

Trucos de introduction:
http://tipsandtricks.runicsoft.com/Cpp/BitmapTutorial.html

Dudas, publicarlas aquí en el foro.