2009-02-28 26 views
9

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

7

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.

8

"Programming Windows 5th Edition" de Charles Petzold es la Biblia para la programación de Windows.

http://www.charlespetzold.com/pw5/

+1

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ó. –

8

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!

2

¿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!

+0

He estado pensando en aprender MFC – Kredns

+0

en mi humilde opinión, definitivamente es el camino a seguir. – Glenn

5

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.

+1

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 ". =) –

2

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í.

0

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

:)