bibliothèque orientée objet C++ pour le développement d'applications de bureau pour Windows .
Lancé par Microsoft en 1992, MFC a rapidement connu un succès fulgurant. Bien que Microsoft ait depuis lors proposé d'autres frameworks d'application, MFC demeure largement utilisé.
le C pour le développement de logiciels d'application commerciaux. Les appels directs à l'API Windows sont rarement nécessaires dans un programme MFC. Les programmes créent plutôt des objets à partir des classes Microsoft Foundation Class et appellent les fonctions membres de ces objets. Nombre de ces fonctions partagent leurs noms avec les fonctions API correspondantes.Une particularité de MFC est l'utilisation du préfixe « Afx » pour de nombreuses fonctions, macros et pour le nom de l'en-tête précompilé standard « stdafx.h ». Lors des premières phases de développement, ce qui allait devenir MFC s'appelait « Application Framework Extensions » et était abrégé en « Afx ». Le nom Microsoft Foundation Classes (MFC) a été adopté trop tard dans le cycle de publication pour que ces références puissent être modifiées.
MFC 8.0 a été lancé avec Visual Studio 2005. MFC 9.0 a été lancé avec Visual Studio 2008. Le 7 avril 2008, Microsoft a publié une mise à jour des classes MFC en tant que mise à jour hors cycle de Visual Studio 2008 et MFC 9. Cette mise à jour propose de nouveaux éléments d'interface utilisateur, notamment les rubans et les widgets d'interface associés , des barres d'outils entièrement personnalisables , des volets ancrables pouvant être flottants ou fixés sur le côté, et des onglets de document .
MFC était initialement une fonctionnalité des versions commerciales de Visual Studio. Par conséquent, elle n'est pas incluse dans la version gratuite Visual C++ Express . L' édition Community de Visual Studio , lancée en 2014, inclut cependant MFC.
La bibliothèque Object Windows (OWL), conçue pour être utilisée avec le compilateur Turbo C++ de Borland , était un produit concurrent lancé par Borland à peu près à la même époque. Borland a finalement abandonné le développement d'OWL et a brièvement concédé sous licence à Microsoft la distribution des en-têtes, bibliothèques et DLL MFC , sans toutefois proposer une prise en charge complète de MFC. Borland a par la suite publié la bibliothèque Visual Component pour remplacer le framework OWL.
Caractéristiques
Lors de son introduction, MFC proposait des macros C++ pour la gestion des messages Windows (via les tables de messages ), les exceptions , les informations de type à l'exécution (RTTI), la sérialisation et l'instanciation dynamique de classes. Les macros de gestion des messages visaient à réduire la consommation de mémoire en évitant l'utilisation superflue de tables virtuelles et à fournir une structure plus concrète permettant aux différents outils fournis par Visual C++ d'éditer et de manipuler le code sans avoir à analyser l'intégralité du langage. Ces macros ont remplacé le mécanisme des fonctions virtuelles de C++.
Les macros de sérialisation, de gestion des exceptions et de RTTI sont apparues plusieurs années avant l'intégration de ces fonctionnalités dans Microsoft C++. Les versions 32 bits de MFC, pour Windows NT 3.1 et les systèmes d'exploitation Windows ultérieurs, utilisaient des compilateurs qui implémentaient les fonctionnalités du langage et mettaient à jour les macros pour simplement les encapsuler, au lieu de fournir des implémentations personnalisées, assurant ainsi la compatibilité ascendante.
L'éditeur de ressources du ruban MFC permet au développeur de concevoir le ruban graphiquement, sans avoir à utiliser le balisage déclaratif XML comme l' API RibbonX . Il est également possible de programmer directement les composants du ruban en appelant un nouvel ensemble de méthodes de classe. Le développeur peut ainsi combiner le développement graphique et programmatique du ruban selon ses besoins. L'assistant d'application MFC a également été mis à jour pour prendre en charge les nouvelles fonctionnalités, notamment une case à cocher permettant de choisir entre le ruban et les volets ancrables. Ces nouvelles fonctionnalités sont fournies dans de nouvelles classes afin que les applications existantes continuent de fonctionner. Cette mise à jour s'appuie sur la bibliothèque Microsoft Office .
MFC peut être utilisé en liant une bibliothèque statique ou en ajoutant la bibliothèque de liens dynamiques (DLL) MFC.