visual studio programacion para interfaz graficos grafica dev c++ visual-studio user-interface winapi

studio - ¿Cómo creo una GUI para una aplicación de Windows usando C++?



qt para c++ (11)

Estoy decidiendo cómo desarrollar una GUI para un pequeño proyecto api de c ++ / win32 (trabajando Visual Studio C ++ 2008). El proyecto solo necesitará unos pocos componentes para comenzar el proceso principal, por lo que será muy liviano (solo 1 botón y un cuadro de texto ...). Mi pregunta es esta:

No tengo experiencia desarrollando GUI en Windows pero puedo aprender fácilmente. Entonces, ¿qué debería usar? Un editor visual (generación de código de arrastrar y soltar: mi preferencia para el diseño de GUI de escritorio por mucho (java / swing)). ¿O debería usar una biblioteca específica? De cualquier manera, ¿QUÉ biblioteca o editor visual debo usar? Escuché que alguien menciona escribir la GUI en C #, y luego llamar al código C ++ ... la cosa es que esta es una GUI tan simple que me resultaría más fácil guardar todo en C ++, pero estoy abierto a lo que sea la mejor sugerencia es


Evite QT (para noobs) o cualquier biblioteca inútil (absurdo para una cosa tan básica)

Simplemente use el asistente de API VS Win32, ad el botón y el cuadro de texto ... ¡y eso es todo!

¡En 25 segundos!


He usado wxWidgets para proyectos pequeños y me encantó. Qt es otra buena opción, pero para uso comercial probablemente necesitarías comprar una licencia. Si escribe en C ++, no use Win32 API, ya que terminará haciéndolo orientado a objetos. Esto no es fácil y toma mucho tiempo. Además Win32 API tiene demasiadas macros y se siente complicado por lo que ofrece.


Para una aplicación tan simple, incluso MFC sería excesivo. Si no desea introducir otra dependencia, solo hágalo en Win32. Será más fácil para usted si nunca ha usado MFC.

Consulte el clásico "Programación de Windows" de Charles Petzold o algún tutorial en línea (por ejemplo, http://www.winprog.org/tutorial/ ) y ya está listo.


Prefiero simplemente usar Microsoft Visual Studio y escribir una aplicación Win32 nativa.

Para una GUI tan simple como la que describes, puedes simplemente crear un cuadro de diálogo y usarlo como la ventana principal de tu aplicación. La aplicación predeterminada creada por el asistente de Win32 Project en Visual Studio en realidad muestra una ventana, por lo que puede replace esa ventana con su cuadro de diálogo y reemplazar el WndProc con un DialogProc similar (pero más simple).

La pregunta, entonces, es una de herramientas y costo. La Edición Express de Visual C ++ hace todo lo que quiere, excepto que realmente crea el recurso de la Plantilla de Diálogo. Para esto, puede codificarlo en el archivo RC a mano o en la memoria a mano . Pregunta SO relacionada: cuadros de diálogo de la API de Windows sin usar archivos de recursos .

O puede probar uno de los editores de recursos gratuitos que otros recomendaron.

Finalmente, Visual Studio 2008 Standard Edition es una opción más costosa pero le brinda un editor de recursos integrado.


Qt de Nokia es definitivamente el camino a seguir. Otra opción es gtk, pero Qt está mejor respaldado y documentado. De cualquier manera, ambos son libres. Y ambos son ampliamente utilizados y bien conocidos por lo que es fácil encontrar respuestas a sus preguntas.


Recomiendo encarecidamente no usar Win32 simple porque es bastante difícil hacerlo funcionar bien en todas las situaciones, es un trabajo aburrido y tedioso y la biblioteca Common Controls no está tan completa. Además, la mayor parte del trabajo se ha hecho por usted.

Cada vez que termino haciendo Win32, tengo que pasar al menos un par de horas en las tareas más triviales porque tengo que buscar todos los parámetros, indicadores, funciones, macros y averiguar cómo conectarlos correctamente. En general, preferiría una simple solución de arrastrar y soltar, don''t-make-me-use-my-brains, y simplemente conectarla en 2 minutos.

Como un juego de herramientas ligero, sugeriría omgui que tiene una API limpia y bonita. Sin embargo, no viene con ninguna herramienta.

Si necesita soporte de herramientas, probablemente terminará queriendo ir a MFC (editor de recursos integrado en Visual Studio) o Qt. No sé si wxWidgets tiene alguna herramienta, pero supongo que sí.

Editar: David Citron menciona que aparentemente el editor de recursos en Visual Studio genera archivos de recursos compatibles con Win32, por lo que esa es probablemente la forma preferida de hacer las cosas si quiere mantener las cosas simples.


Si desea obtener información sobre win32, WTL http://wtl.sourceforge.net/ es el equivalente bastante ligero de MFC, pero debe adorar la plantilla para usarlo.

Si desea algo simple, MFC ya está integrado con VS, también tiene una gran base de código adicional y soluciones provisionales de errores conocidos en la red.

También Qt es realmente un gran marco, tiene un buen conjunto de herramientas, editor de cuadros de diálogo, temas y muchas otras cosas, además tu aplicación estará lista para ser multiplataforma, aunque requerirá algo de tiempo para acostumbrarse.

También tiene Gtk, wxWindow, y no tendrá problemas si ya lo ha usado en Linux.


Si está haciendo una GUI muy simple y ya está usando Visual Studio, entonces puede ser lógico ir con MFC. Puede usar el asistente de Visual Studio MFC para crear una aplicación basada en diálogo, soltar dos controles y listo.

MFC está fechado y tiene una buena cantidad de molestias, pero sin duda hará el trabajo por usted si solo habla de un botón y un cuadro de texto.

No tengo ninguna experiencia con Qt, así que no puedo comparar los dos.


Simplemente cree una nueva aplicación MFC C ++. Está integrado, es bastante fácil, y existen miles de ejemplos en el mundo ...

Además, puede diseñar su cuadro de diálogo directamente en Visual Studio, darles nombres de variables y generar el 90% del código para usted.


Una simple "ventana" con algo de texto y un botón es solo un MessageBox. Puede crearlos con una sola llamada de función; no necesitas ninguna biblioteca en absoluto.


de lejos, la mejor biblioteca de GUI de C ++ que existe es Qt , es completa, fácil de aprender, muy rápida y multiplataforma.

ah, recientemente obtuvo una licencia LGPL, por lo que ahora puede descargarla gratis e incluirla en programas comerciales