MFC (Microsoft Foundation Classes)

Les MFC (Microsoft Foundation Classes) sont une bibliothèque de classes C++ pour développer des applications Windows, introduite par Microsoft au début des années 1990. Elles s’utilisent principalement avec Visual Studio, qui propose des assistants permettant de générer rapidement la base d’un projet MFC.

Une application MFC est souvent structurée autour de l’architecture Document / View (Document / Vue) :

  • La partie Document gère les données de l’application (modèle, stockage, logique liée aux contenus).

  • La partie View (Vue) gère l’affichage et l’interaction avec l’utilisateur.

Les interactions (clic souris, bouton, menus, raccourcis…) sont traitées via un système de messages Windows, auquel MFC ajoute un mécanisme de “routage” pratique (message maps).
La partie Document peut également gérer la sérialisation pour sauvegarder et recharger l’état des objets (dans les projets qui utilisent ce mécanisme).

Les MFC restent bien documentées via la documentation Microsoft (anciennement MSDN), et les versions récentes permettent aussi d’intégrer une interface moderne, par exemple un ruban (Ribbon UI).

Qt

Qt est une bibliothèque C++ multiplateforme lancée au milieu des années 1990, conçue pour développer des interfaces graphiques modernes (mais pas seulement : réseau, threads, base de données, OpenGL, etc.).
L’écosystème Qt s’appuie notamment sur :

  • Qt Creator (IDE)

  • Qt Designer (conception visuelle des interfaces)

Qt est réputé pour sa prise en main relativement rapide, grâce à une API cohérente et à son mécanisme central : les signaux / slots, qui permettent de connecter facilement un événement (clic, changement de valeur…) à une fonction (slot) sans dépendre directement du système de messages Windows.

Le gros avantage de Qt est la portabilité : une application Qt peut être compilée et exécutée sous Windows, macOS et Linux (et selon les modules, sur d’autres plateformes).
À l’inverse, une application MFC est limitée à Windows.

Concernant la licence : Qt propose des options open source et commerciales. Pour un usage commercial, cela dépend du type de licence choisi et des contraintes de redistribution (il faut donc vérifier le modèle de licence adapté à ton produit).

Migrer une application MFC vers Qt : à quoi s’attendre ?

Transformer une application MFC en application Qt demande généralement :

  1. Repenser l’architecture, surtout si l’application repose fortement sur Document/View MFC.

  2. Recoder l’interface utilisateur : boîtes de dialogue, menus, barres d’outils, raccourcis, gestion d’événements…

  3. Remplacer progressivement certains concepts spécifiques (messages Windows, sérialisation MFC, contrôles MFC) par leurs équivalents Qt (widgets, signaux/slots, modèles, etc.).

En pratique, ce n’est pas un simple “portage”, mais souvent une réécriture partielle centrée sur l’interface et la structure de l’application.

Conclusion : MFC ou Qt ?

  • Qt est un excellent choix si tu veux une application multiplateforme et une interface moderne, avec un framework riche et cohérent.

  • MFC reste pertinent si ton projet est 100% Windows, que tu as un historique MFC important, ou que ton équipe maîtrise déjà très bien cet environnement.

Au final, le bon choix dépend surtout de tes besoins : portabilité, modernité de l’UI, temps de migration, compétences de l’équipe, contraintes de licence.

Demander un devis