Quiero aprender la programación de la GUI de C++ utilizando Visual Studio 2008. No estoy seguro de por dónde empezar. Aprendí C++ en la escuela secundaria, pero no GUI. Llevo 3 años haciendo C# y así es como "aprendí" la programación de GUI. Ahora quiero aprender a escribir GUI sin el uso del framework .NET, entonces, ¿dónde empiezo?Programación de Windows C++ C++
Respuesta
MFC está casi desactualizado ahora. Yo recomendaría usar WTL en su lugar.
Bueno, tampoco es una buena idea comenzar a programar para GUI en C++ cuando hay tantos buenos marcos disponibles como el marco QT multiplataforma.
"Programming Windows 5th Edition" de Charles Petzold es la Biblia para la programación de Windows.
Dado que usted dice que ha estado haciendo de programación C# GUI durante unos 3 años, voy a suponer que eso significa Windows Forms. Una forma de sumergir el dedo del pie en el agua es recordar que WinForms es realmente una envoltura orientada a objetos alrededor del user32
. Así que cargue Reflector y observe la forma en que se implementan algunos de los controles. Verá que estos mensajes extraños como WM_PAINT
y WM_KEYDOWN
se transfieren al WndProc
de los distintos controles de Windows. En la antigua programación Win32 o MFC, lo mismo sigue sucediendo. Hacer esto le permitirá pelar lentamente las capas de la cebolla; tendrá una mejor idea de cómo funciona Windows Forms, también. A partir de ahí, recomendaría recoger Programming Windows por Petzold; es viejo, pero las API nativas en Windows no se mueven alrededor de que mucho. ¡Que te diviertas!
¿Sería correcto escribir GUI en VC++ con Microsoft Foundation Classes o MFC? Así es como lo haría y he escrito GUI de VC++ en el pasado.
Ha habido muchos libros escritos en MFC a lo largo de los años. Estoy seguro de que a cualquiera de ellos le irá bien. Puede encontrar en la literatura la ATL de referencia que es una iteración de Microsoft en STL. MFC y ATL se fusionaron a lo largo de los años por lo que cualquier ATL también se aplica a una aplicación MFC en estos días.
¡Buena suerte y diviértete!
Algunas opiniones heréticas ...
No recomendaría C++ para escribir complejas interfaces gráficas de usuario de Windows - combos lenguaje/biblioteca como C# o Delphi son mucho más productivas. Si desea ingresar a la programación en C++, le sugiero que lo use para escribir un servidor de subprocesos múltiples de algún tipo, un simple servidor web sería de los principiantes.
Y si realmente quiere entender las API de Windows subyacentes, creo que hay algo que decir para escribir una aplicación simple (como, por ejemplo, una versión simplificada de un portátil) en C (no en C++). Solo querrá hacerlo una vez, pero aprenderá mucho en el proceso.
Y antes de que nadie comience a votar negativamente, permítanme decir que soy un programador de C++ con más de 20 años de experiencia, y realmente amo el idioma.
No, estoy totalmente de acuerdo. Vale la pena por el "OH - entonces así es como funciona" y por el "OH - entonces es por eso que ha habido un bajillion de envoltorios para él" y por el "OH - entonces es por eso que no lo hacemos" de esa manera nunca más ". =) –
Ah, sé cómo te sientes, viejo programador de idiomas interpretados que quiere saber la magia detrás de la programación compilada. Bueno, no puedo encontrar el tutorial que utilicé para aprender a programar Windows, pero sé que hay buenos tutoriales de win32, así que no pierdas el tiempo comprando un libro por el momento. Lo encontré: http://www.relisoft.com/win32/index.htm El tutorial más cercano, confía en mí.
A partir de ahora (Windows 8), WinRT, una API completamente nueva ha sido presentada al público por Microsoft y estoy muy entusiasmado con ella. Nunca hizo la programación de MFC, pero vio algunas muestras de código y se ven extrañamente estilo C de los 90 (¡el estilo C moderno a menudo es mejor!). Entonces, sin comenzar directamente con MFC, creo que comenzaré con WinRT
:)
- 1. mediante programación en C#
- 2. Qt tutoriales de programación (C++)?
- 3. ¿Cómo instalar un servicio de Windows mediante programación en C#?
- 4. Programación de programas delgados en C++ (como uTorrent) para Windows
- 5. C++ Concursos de programación
- 6. Programación interactiva de consola para c/C++?
- 7. ¿Algún consejo sobre la programación de Linux para el programador de Windows (C/C++)?
- 8. Windows: ¿Qué lenguaje de programación?
- 9. Programación genética en C#
- 10. Programación paralela y C++
- 11. Programación paralela en C#
- 12. simple c programación gui
- 13. Programación concurrente C++?
- 14. Programación funcional en C++
- 15. programación C# red
- 16. Programación C Función sqrt
- 17. C Programación: + = vs = +
- 18. C# y programación de Bluetooth
- 19. Programación de socket en C++
- 20. C# programación de tarjetas inteligentes
- 21. C# Asyn. Programación de tomas
- 22. Silenciar volumen de Windows con C#
- 23. Formato Medios extraíbles con programación C#
- 24. Biblioteca de programación no lineal en C++
- 25. Programación Game Boy Color en C
- 26. (multiplataforma) Programación 3D con C# (mono)
- 27. eliminar mediante programación un servicio usando C#
- 28. Pautas de programación paralela para C#?
- 29. Programación cuadrática en C#/.NET
- 30. C Programación - Pase por referencia
The Bible! Leer libros de Petzold es una necesidad no solo para desarrollar el uso directo de la API de Win32 (que tiene sus pros y sus contras (prefiero utilizar MFC), sino también para entender cómo funciona Windows bajo el capó. –