Ufff postee todo esto y se me borro, asi que resumo again:
#12 mas que poner eso yo pondria: si te interesa la API win32 y sabes C vete a tal web, que por cierto es la que le iba a recomendar yo
Pero en el caso de que sepa C++ igual le interesa mas las MFC.
Que diferencias hay:
La API de win32 aporta funciones para la creacion de ventanas con botones y demas. Algo asi como Visual Basic , pero sin la parte visual, todo pikando codigo.
Las MFC (Microsoft Foundation Classes) es casi lo mismo solo que basado en POO (programacion orientada a objetos), es decir, si en la api de win32 usabas un:
hWnd = CreateWindow(...);
Ahora con las MFC te has de crear una instancia de la clase CFrameWnd. Lo mismo para poner botones, textbox y demas.
¿Que elegir?
Yo siempre recomiendo la API de win32 aunqe prefiera POO, ya que la curva de aprendizaje de las MFC es muy dificil (no que lo diga yo, sino todo el mundo que las prueba), ya que tienes que aprenderte muchas clases y la jerarquia de herencias es muy grande y liosa. Por otro lado la api de win32 tiene funciones genericas para la apertura de ficheros sin tener que depender de stdio o iostream, o rutinas para manejo de archivos .ini y bastantes mas cosas que se alejan de lo que es crear aplicaciones, pero que son utiles (solo para windows, asi q pierdes la portabilidad de stdio y demas).
Por otro lado puedes pensar: ¿Porque pikar tanto codigo si con VB pongo los botones con el raton en plan guay?
En parte es cierto. Con win32 que yo sepa no hay visualizador, pero para las MFC si lo hay con Visual Studio. Por otro lado sabiendo usar las win32 sacas mas provecho que agregando las cosas con el raton (que a fin de cuentas si quieres hacer una aplicacion medianamente buena con VB tienes que meter codigo por huevos,pero weno..).
Luego tambien tienes la tecnologia .NET . Esto es, el framework .NET (marco de trabajo), que es igual para VB que para VC++.
Por ejemplo, si quieres añadir un textbox con VC++ el codigo de instanciacion seria este:
this->textBox1 = new System::Windows::Forms::TextBox();
mientras que si lo haces en VB seria este:
Me.TextBox1 = New System.Windows.Forms.TextBox
Si te das cuenta, la sintaxis de inicializacion de VB y VC es distinta obviamente, pero el espacio de nombres (namespace) es el mismo en ambos: System.Windows.Forms
Esto es el framework .NET. En cada lenguaje basado en .NET tienes las mismas clases y namespaces para definir los mismo objetos, ya sea ASP.NEt , VB.NET ,VC++.NET , C#.NET ,J#.NET etc...
En definitiva, si quieres hacer aplicaciones visuales para windows yo te recomiendo C#.NET que usa lenguaje C# que aporta muchas mejoras sobre C++ y ha mejorado en velocidad bastante. (antes se decia que las aplicaciones creadas con C++ eran un 10% mas rapidas que las de C#, pero ahora ya es minima la diferencia)
Y desaconsejarte VB ya que para el uso de threads crea aplicaciones inestables...
Eso es todo (y eso que resumi, vaya parrafada tenia antes)
Saludos!
Nota: Todo lo que puse aqui es fruto de mi experiencia con MFC, C# o demas lenguajes, asi que no es dogma de fe. si alguien discrepa en algo que lo diga por favor, no es la panacea lo que he escrito aqui