¿Cuál es un buen lugar para empezar a programar GUI para Windows?[cerrado]

StackOverflow https://stackoverflow.com/questions/4347

  •  08-06-2019
  •  | 
  •  

Pregunta

Tengo experiencia escribiendo aplicaciones cliente/servidor de consola y de red en C y C++, pero no sé casi nada sobre el uso de la API visual win32, MFC, Qt, wxWidgets, etc.¿Dónde es un buen lugar para comenzar y en qué método debería especializarme para estar preparado y ser sólido para el futuro?

¿Fue útil?

Solución

Esta es una pregunta bastante amplia, ya que la programación de aplicaciones GUI en Windows se puede realizar de muchas maneras.

Hay dos partes principales en el desarrollo de cualquier aplicación GUI:el idioma y el API/marco.Teniendo en cuenta que está interesado en aprender a crear aplicaciones GUI de Windows, el lenguaje no es realmente un punto de atención para usted.Por lo tanto, debes elegir un idioma que ya conozcas y trabajar con un marco o API que pueda ser aprovechado por el idioma elegido.

Si desea utilizar C, está prácticamente restringido a tratar con la API de Win32 usted mismo, en cuyo caso lea petzold o rico Serían excelentes lugares para comenzar.La API de Win32 puede ser bastante desalentadora, pero vale la pena el esfuerzo de aprenderla (en mi humilde opinión).Hay muchos tutoriales sobre Win32 en la web y siempre hay MSDN, con una referencia/guía completa de la API de Win32.Asegúrese de cubrir no solo la API, sino también otras áreas, como recursos/diálogos, ya que son bloques de construcción para su aplicación Win32.

Si desea utilizar C++, tiene todas las opciones que tiene cuando usa C más algunas otras.Recomendaría ir directamente con la API de Win32 y luego pasar a un marco conocido como MFC, Qt, wxWindows o GTK para que pueda dedicar menos tiempo a trabajar con código repetitivo y, en cambio, concentrarse en escribir la lógica de su aplicación.Las últimas 3 opciones que acabo de enumerar tienen el beneficio adicional de ser multiplataforma, por lo que no tienes que preocuparte demasiado por problemas específicos de la plataforma.Dado que dijiste que quieres trabajar con Windows, asumiré que estás interesado en concentrarte en eso en lugar de en la plataforma cruzada, así que elige MFC, pero primero pasa algo de tiempo con la API de Win32 para familiarizarte con algunas de los conceptos.

Cuando se trata de MFC y la API de Win32, es una buena idea intentar obtener una comprensión sólida de la terminología antes de escribir el código.Por ejemplo, es necesario entender lo que bomba de mensajes es y cómo funciona.Necesitas conocer conceptos como "dibujado por el propietario controles", y subclasificación.Cuando comprenda estas cosas (y más), le resultará más fácil trabajar con MFC porque utiliza terminología similar en sus interfaces de clase (p. ej.necesita saber qué significa "traducir mensajes" antes de poder comprender cómo y cuándo usarlo Mensaje previo a la traducción).

También puede usar Managed C++ para escribir aplicaciones .NET GUI, pero he leído en algunos lugares que Managed C++ en realidad no estaba diseñado para usarse de esta manera.En su lugar, debería utilizarse como puerta de enlace entre el código nativo/no administrado y el código administrado.Si está utilizando .NET, es mejor utilizar un lenguaje .NET como VB.NET o C# para crear sus GUI.

Así que si usted son va a utilizar .NET, actualmente tiene la opción de elegir WinForms biblioteca, o WPF.Personalmente, creo que estaría perdiendo el tiempo aprendiendo a crear aplicaciones WinForms dado que WPF está diseñado para reemplazarlo.Con el tiempo, WPF se volverá más frecuente y lo más probable es que Winforms desaparezca.WPF tiene un conjunto de API mucho más rico y no sufre muchas de las limitaciones que tiene Winforms.Sin embargo, si eliges esta ruta, sin duda tendrás que aprender XAML, que es un lenguaje de marcado que controla las aplicaciones WPF.Esta tecnología está madurando y hay muchos lugares excelentes para aprender sobre ella.Primero, hay sitios como AprenderWPF, y DrWPF que tienen algunos artículos realmente geniales.En segundo lugar, hay infinidad de calidad libros sobre el tema.

Entonces, para resumir, una vez que haya elegido el idioma y la tecnología, el camino es bastante fácil.Simplemente tome uno o dos libros, lea algunos blogs, acceda a algunos ejemplos de código...y más importante ...escribir código.Sigue escribiendo, sigue cometiendo errores y sigue aprendiendo de ellos.

Como nota final...

En otras palabras, Silverlight.Si no desea seguir la ruta de MS, puede echarle un vistazo a Adobe Flash/Flex.Tanto Silverlight como Flash/Flex construyen RIA.Y creo que es hacia donde nos dirigimos.Los días de las aplicaciones tipo Office están contados

No estoy de acuerdo en absoluto.Silverlight no es lo mismo que WPF.Silverlight es específico de la web y solo tiene un subconjunto de características de WPF.Dado que la pregunta se refiere a aplicaciones GUI de Windows, las aplicaciones de Internet enriquecidas Flash/Flex no son realmente una sugerencia adecuada.Tampoco estoy de acuerdo con que los días de las aplicaciones de cliente enriquecido (como las de oficina) estén contados en absoluto.

Espero que eso ayude.Buena suerte :)

Otros consejos

No sé si lo llamaría un buen punto de partida, pero si quieres estar preparado para el futuro, echa un vistazo a Fundación de presentación de Windows que está construido enteramente con el propósito de programar GUI para Windows

Mi primera experiencia escribiendo aplicaciones GUI simples para Windows fue con C# y Visual Studio.La interfaz de creación de GUI es una simple operación de arrastrar y soltar que genera métodos esqueléticos basados ​​en posibles acciones del usuario.Solo hice una programación bastante básica con esto, pero imagino que sería un excelente lugar para comenzar a aprender los conceptos básicos y ampliar las capacidades más avanzadas a medida que avanza.

Hay muchos tutoriales en línea de Win32:

http://www.zeusedit.com/forum/viewtopic.php?t=1218

Hay muchos compiladores para elegir:

http://www.zeusedit.com/forum/viewtopic.php?t=238

También recomendaría conseguir el Borland Win32 SDK documentación en formato de archivo WinHelp:

http://www.zeusedit.com/forum/viewtopic.php?t=7

Sólo cubre los conceptos básicos de Win32, pero al iniciarlo, puede resultar útil, ya que es menos intimidante y menos abultado que MSDN.

Nunca seguiría Silverlight, Flash/Flex o cualquier ruta similar.Tiene buena pinta, pero el principal problema es que el código del motor que lo hace funcionar es completamente cerrado y está controlado por una única empresa.Tomemos, por ejemplo, las versiones de 64 bits de ambos.Si surge alguna plataforma nueva, no podrá migrar su código existente a ella.

Para las aplicaciones empresariales, Windows Forms está muy maduro.Proporciona un camino suave desde la generación automática de lotes hasta permitir un control detallado y desarrollar el suyo propio.Hay toneladas de controles de terceros de alta calidad y una gran cantidad de ejemplos, documentos, etc.Es difícil encontrarse con un problema que alguien más no ha resuelto.Recomiendo encarecidamente adquirir algunos conocimientos básicos de Win32 (p. ej. petzold) ya que el marco WinForms se encuentra encima de él.

No tengo experiencia con WPF, pero según las aplicaciones de muestra que he visto, parece una buena opción para aplicaciones cuyas interfaces se beneficiarían de metáforas más gráficas.Entonces, si está creando una aplicación bancaria, probablemente no valga la pena el diseño adicional.Pero si estás haciendo, digamos, una aplicación de gestión de almacenes, podría mejorarse colocando cajas bonitas en contenedores bonitos.

@StephenCox:respuesta equivocada a la pregunta equivocada.OP pregunta sobre aplicaciones cliente de escritorio y, además, ¡WPF! = Silverlight.

Como punto de partida sencillo para entender la naturaleza "impulsada por eventos", básicamente todos los marcos se crean en torno a mirar FLTK.

Aquí hay algunos videos de inicio rápido. Enlace

Para uso profesional, recomendaría Qt, es caro pero a menudo vale la pena en situaciones comerciales.

Como ya está familiarizado con C y C++, le recomendaría aprender a escribir una aplicación GUI sencilla para Windows utilizando el libro de Charles Petzold.Le brindará una comprensión fundamental de cómo funciona Windows.Es bueno comprender que casi todo lo que ves es una ventana (un botón es una ventana, por ejemplo) y que estas ventanas responden a los mensajes.Sin embargo, no dedicaría mucho tiempo a esto y no es necesario que lo hagas primero si vas a elegir WPF.Simplemente creo que es bueno tener una comprensión básica de esto.

Recientemente hubo un buen podcast en .Net Rocks llamado "¡Kate Gregory desarrolla en C++ para Vista!" Allí recomienda que alguien que comienza ahora no use/aprenda MFC (aunque se haya actualizado recientemente).

En cuanto a prepararse para el futuro, necesita aprender WPF, pero aún no está completo, por lo que dependiendo del tipo de aplicaciones del lado del cliente que desee crear, probablemente necesitará aprender WinForms.La mayoría de las personas aún no utilizan WPF, por lo que es un buen momento para empezar a aprender.Creo que le resultará más fácil usar C# para aprenderlo en lugar de utilizar código administrado con C++.

Primero, aprenda bien lo básico.El mejor tutorial que he encontrado es: http://winprog.org/tutorial/start.html

Después de eso, aunque la página de inicio es odiosamente desagradable, las páginas de tutoriales son buenas en contenido y estética: http://www.tenouk.com/cplusmfcdotnet.html

Entonces por supuesto que hay MSDN.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top