lunes, 21 de abril de 2008

Introducción a las MFC.

Traduccion del manual

La Biblioteca de Microsoft Foundation Class (MFC Library) es una libreria de clases C + + creada por microsoft con Microsoft Visual C + + para ayudar en el desarrollo de aplicaciones de Microsoft Windows. Aunque las MFC son sobre todo utilizadas en aplicaciones GUI, pueden ser utilizadas para desarrollar cualquier tipo de aplicación. La Biblioteca MFC consta de una serie de clases, que son ligeros 'envoltorios' de alto nivel para interfaces de programación de aplicaciones (API) como WinSock y ODBC. Todo el kernel Win32, GDI, y objetos de usuario se asocian a MFC clases.
A la librería MFC se le denomina biblioteca vertical, utiliza en gran medida la herencia de clase, y en pequeña escala las plantillas C + + .
La libreria MFC 1,0 fue publicada por primera vez en 1992 (con Microsoft C + + 7.0), cuando Microsoft cambió a 16 bits de Windows 3,1, y no contenía plantillas. La versión actual MFC 4,2 contiene clases basadas en plantillas. Usandose las MFC, las aplicaciones no tienen que modificarse mucho cuando se cambia entre diferentes plataformas. Por ejemplo, muchas aplicaciones MFC escritas para Windows 3.1 (Win16) pasan simplemente recompilado a plataformas Win32 tales Windows 95 y NT. Cuando salga Win64, no habrá que reescribir de nuevo las aplicaciones MFC.
Las librerías pueden cargarse dinámicamente o estáticamente. Espero que conozcas las diferencias entre una y otra opción.
Los siguientes capítulos tienen por objeto introducir a los laicos la programación de MFC. MFC aunque parece simple, requiere de uno a tener un fondo en Win32 y de programación C + +. Si no tienes ese fondo, estas notas no le ayudarán. Debido a la gran curva de aprendizaje para aprender Win32 y C + +, son muy pocos los programadores que dominan en el MFC. Toma un largo tiempo de estudio. Si lo que desea es escribir sencillas aplicaciones GUI, estudie VB en vez de MFC.

Hay muchos programadores de Visual Basic que desarrollan para windows. Cada día hay mas, sencillamente a través de cursos de 8 semanas VB. No se necesita mucha más experiencia que la que se requiere para hacer clic y arrastrar controloes a un formulario de Visual Basic. Esto se puede observar por los variados orígenes de los programadores de VB en el mercado. No se requiere una Licenciatura para escribir un simple programa de VB. Visual Basic sólo ofrece acceso a los recursos de windows que se utilizan en la mayoría de las aplicaciones. Por ejemplo, una barra de desplazamiento en Visual Basic es bastante simple. Pero, una barra de desplazamiento que cambia de color no se encontrará en Visual Basic. Si se necesita tener un control como este, tendrá que crear un control ActiveX , bien con C++ y Win32 puro y duro, o con la Bliblioteca de plantillas activas (ATL), o bien usando MFC. Para este problema, debido a su simplicidad, ATL sería el método más rápido y fiable de desarrollo. Después de que el control es construido, que puede ser utilizado por un programador de VB en sus forms. Muchos programadores de Windows que utilizan puro y duro Win32 API para desarrollar aplicaciones de ventanas han sido desplazados por los programadores de VB. Aunque C++ soporta Microsoft Visual Basic para el desarrollo de complicadas estructuras de datos, la sencilla interfaz de Visual Basic es preferida para el desarrollo.

Si se usa MFC para desarrollar una sencilla aplicación de Windows con elementos de la interfaz estándar, es probable tardar horas de desarrollo. En Visual Basic, se necesitaría sólo un par de minutos. MFC no destacaría, MFC no es para hacer esto. MFC destaca, cuando uno se enfrenta a una compleja aplicación con gran cantidad de programación Win32. Por ejemplo, tendrá que escribir una aplicación con múltiples hilos, sockets, y la base de datos de interacciones. Usted puede escribir su programa en C usando Win32 puro y duro , WinSock y ODBC. Pero este tipo de código es muy propenso a errores. (En Visual Basic , de una manera retorcida, puede declarar y llamar funciones de la api win32. El apoyo de Socket apoyo se puede lograr a través de controles especiales. Se pueden usar Bases de datos utilizando ADO. Sin embargo, estas aplicaciones VB tienden a ser inmantenibles). MFC sería la mejor apuesta para este tipo de aplicación.

Todas las clases MFC tienen la letra mayuscula C de prefijo. Por ejemplo, CString, CFile, CSocket, CMutex son classes de la librería MFC . Las clases MFC estandard son declaradas en afxwin.h. Si no usamos el asistente de creación de aplicaciones, tenemos que activar las MFC linkando las librerías estáticas o dinámicas de MFC. Todos los codigos de las siguientes páginas, usan Visual C++ 6.0.
Cada vez que usemos MFC en una aplicación de cónsola, necesitamos inicializar el soporte MFC run-time con la llamada a la función AfxWinInit. Si no nicializamos el MFC run time, El código puede terminar inesperadamente. Los siguientes capítulos muestran MFC bajo una perspectiva no GUI..

Declaración:BOOL AFXAPI AfxWinInit( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )
Información:Función que inicializa el entorno run-time MFC. Retorno TRUE si es correcto.

El programa Box #1 demuestra un simple main que solo initializa el entorno runtime MFC.

// BOX #1:  Initialize the MFC Runtime Environment.

#include

int main(void)
{
if(AfxWinInit(GetModuleHandle(NULL),
NULL,GetCommandLine(),0)==FALSE)
{ cout<<"Unable to initialize MFC"<<endl;
return 1; }

/*
Use MFC Classes Here !!!
*/

return 0;
}

No hay comentarios: