La Référence Absolue sur les Technologies Microsoft




Tous les Articles du Laboratoire Microsoft

Les News font peau Neuve...
Accueil > Articles > Actualité
Auteurs 
Olivier BOISNE
LABORATOIRE MICROSOFT


 Tous les articles de cet auteur

3,1/5

Assez Bien


34161
88/278
Sommaire
Partie 1 - Structure d'un programme Windows
Partie 2 - Les MFC et les outils de développement proposés par Visual C++
Partie 3 - Création d'un agenda grace aux MFC

2e partie : Les MFC et les outils de développement proposés par Visual C++

Les MFC (Microsoft Foundation Classes)

Les MFC constituent un ensemble de classes prédéfinies autour desquelles s'articule la programmation Windows avec Visual C++ : l'écriture d'un programme Windows entraîne la création et l'utilisation d'objets MFC, ou d'objets de classes dérivées des MFC. Les objets créés contiennent des fonctions membres permettant la communication avec Windows, l'échange de messages entre eux, et le traitement des messages Windows.
Les MFC représentent un vaste domaine et font intervenir un grand nombre de classes. Elles composent une structure complète de développement d'applications, où il vous suffit d'effectuer les opérations de personnalisation dont vous avez besoin pour adapter les programmes à vos exigences.

Par convention, sachez que toutes :
- les classes des MFC portent des noms qui commencent par C, comme CDocument ou CView ;
- les données membres d'une classe MFC commencent par le préfixe m_.
Il va de soi, qu'il est préférable d'adopter cette convention lors de la définition de nos classes, ou de leur dérivation à partir des classes de la bibliothèque MFC.
Il est inutile de retenir les classes dont vous avez besoin dans votre programme et les classes de base à utiliser dans leur définition. Comme nous allons le voir, c'est Visual C++ qui s'en charge.

Les outils de développement de Visual C++

Dans le développement de vos programmes Windows, vous serez amené à vous servir de deux outils.
- AppWizard, pour construire le code élémentaire, squelette de votre application Windows au moyen de la bibliothèque MFC. Il s’agit d’un assistant à la programmation Windows extrêmement performant, car, pour créer votre application, il vous suffit de personnaliser un programme tout prêt. Il contient même des explications sur l’endroit où vous devez insérer le code spécifique à l’application.
- ClassWizard, facilite l’extension des classes générées par AppWizard comme éléments de base de votre programme Windows. Il permet d’ajouter des classes reposant sur des classes des MFC, pour la prise en charge des fonctionnalités à intégrer dans votre programme. Il convient de noter que ClassWizard ne reconnaît pas les classes ne dérivant pas des classes MFC.

Notre programme "Hello World" pour illustrer les outils

L’étendu des services que peuvent fournir ces outils sont conséquent, dans cet article, nous n’en présenterons qu’une partie, nécessaire à l’élaboration de « Hello World » et de la conception de notre agenda.
L’application à saisie de notre nom, et après confirmation, nous affichera un message « Hello notre_nom ».

Les notions abordées

- Boite de dialogue : La plupart des programmes Windows font appel à des boite de dialogue pour gérer certaines de leurs entrées de données : cliquez sur une commande de menu et une boîte de dialogue s’affiche, contenant divers contrôles vous permettant de saisir des informations. Pratiquement tous les éléments de la boîte de dialogue sont des contrôles. Pour être plus précis, une boîte de dialogue est une fenêtre, et chacun de ses contrôles une fenêtres spéciales.

- Les 3 différents contrôles abordés :
- Contrôle statique : il contient des informations statiques, telles que titres ou instructions, ou simplement des éléments d’illustration ;
- Bouton commande : comme OK ou ANNULER, permettent généralement de refermer une boite de dialogue, ou de confirmer un choix ;
- Contrôle d’édition : réduit à sa simple expression, il permet de saisir et de modifier une ligne de texte.
- à savoir pour la gestion des classes avec ClassWizard :
Comme nous l’avons vu plus haut, Windows communique avec notre programme en lui envoyant des messages ; de même, les MFC vous permettent de définir des fonctions destinées à gérer les seuls messages qui vous intéressent, sans vous préoccuper des autres.
Ces fonctions sont appelées gestionnaires de messages, ou simplement gestionnaires. Comme votre application est un programme MFC, les gestionnaires de messages sont dans tous les cas des fonctions membres de l’une des classes de votre application.
Une table de correspondance des messages établit la relation entre un message donnée et la fonction qu’il est censé prendre en charge à l’intérieur de votre programme, sachant que chaque classe du programme habilitée à gérer les messages Windows en possède une. La table de correspondance des messages de la classe se présente sous la forme d’un tableau de fonctions membres prenant en charge les messages de Windows. Toutes ses entrées associent un message spécifique à une fonction ; de sorte que l’arrivée de chaque message déclenche l’appel de la fonction correspondante.
AppWizard et ClassWizard créent automatiquement une table de correspondance de messages lorsque vous ajouter une classe pouvant gérer des messages. Dans cette table c’est principalement ClassWizard qui se charge des ajouts et des suppressions, même si dans certain cas vous êtes amené à modifier la table vous-même.

Notre programme étape par étape

Lancez AppWizard :
- de la barre de menus : File | New ou CTRL+N ;
- choisir : MFC AppWizard (exe) ;
- appeler votre projet : HelloToi.

Lorsque vous cliquez sur OK, vous êtes à la première étape de la boîte de dialogue d’AppWizard permettant de créer l’application. On va choisir une application à base de boîte de dialogue. L’aperçu du type d’application est affiché (coin supérieur gauche) pour vous donner une idée du résultat final.
Le reste des étapes de AppWizard ne nous intéresse pas dans le cadre de notre exemple. On clique pour fermer AppWizard et confirmer nos choix sur FINISH.

Vous obtenez un récapitulatif des éléments insérés dans votre projet par AppWizard. Il vous suffit de cliquer sur OK pour qu’AppWizard crée tous les fichiers programme composant une application.

On va supprimer les différents contrôles générés automatiques, pour voir comment en définir nous même. Pour cela, on effectue un clic gauche sur un contrôle et on supprime avec le bouton SUPPR du clavier.

On va par la même occasion, réduire la taille de la boite de dialogue avec les carrés de redimension, situer au niveau de tous les bord de notre fenêtre.

On va crée un contrôle statique , avec le bouton qui se trouve sur le menu control, puis on le définit sur notre boîte dialogue avec le curseur. Le texte affiché est « Static » par défaut, pour le modifier en « Votre nom : », il faut accéder aux propriétés du control, pour cela : on effectue un clic droit sur ce contrôle puis on sélectionne PROPERTIES.

On change dans CAPTION, le texte en « Votre nom : ». CAPTION correspond juste au texte afficher par le contrôle.
On confirme en refermant la fenêtre avec la petite croix de la fenêtre.

On va définir maintenant un contrôle d’édition.
On accède au propriété de ce contrôle, et on se rend compte qu’il n’a pas de champ CAPTION, en effet, les contrôles sont différents et leurs propriétés aussi.
IDC_EDIT1 est l'ID qui identifie le contrôle nouvellement crée.
Pour plus de clarté, on va renommer ce contrôle en IDC_NOM.

De même, il faut penser à récupere le texte qu’on va saisir, pour cela, on va utiliser ClassWizard afin de creer une donnée membre qui stockera le texte tapé dans le contrôle. Pour y accéder, on effectue un clic droit sur ce contrôle et on sélectionne ClassWizard.

Celui-ci s’ouvre sur l’onglet qui nous intéresse : Member Variables.

En cliquant sur le bouton : Add Variable, on peut associer le texte saisie dans ce contrôle à une variable de type CString (chaîne en français), qu’on nomme m_nom. (m_ convention, voir plus haut dans l’article).

NB: CString fait partie des classes fournies par Microsoft (MFC). Ses intances permettent de faire des manipulations sur les chaines de caractères bien plus interressante que l'aurait permis une simple variable char.

On confirme par OK, et on sort de ClassWizard par OK aussi.

On va crée un contrôle bouton commande.
De la même façon que pour le contrôle statique et d’édition, on change sont ID en « IDC_OK », et CAPTION en « OK ».

Il faut maintenant associer une action à notre bouton OK. Pour cela, on va aussi ce servir de ClassWizard.
De l’onglet : Message maps, on va associé IDC_OK à un message. Quand on sélectionne IDC_OK, Visual C++ nous associe deux actions possibles avec ce genre de contrôle, nous allons va choisir BN_CLIKED (est cliquez).

On clique sur :Add Function, puis définir la fonction qui va gérer ce message. Visual C++ nous propose OnOK comme nom de fonction, cela nous convient, on confirme par OK.

On clique sur Edit Code, pour écrire le code correspondant à cette fonction. Visual C++, nous y amène automatiquement.

On tape le code suivant :

On compile et exécute notre application :

On rentre un nom. On clique sur OK.

IoI, Za marche !!!

Pour fermer, l’application, on clique OK, puis la croix de la fenêtre.

Remarques : Pour revenir à la boite de dialogue, on clique sur IDC_HELLOTOI_DIALOG.

Pour revenir, sur le code, de la même fenêtre on clique sur l'onglet Classes, on dévellope avec la croix les HelloToi classes est clique sur la classe à modifier qu nous interesse.

Conclusion de la 2e partie

Pour obtenir une fenêtre avec des boutons, qui traite nos données, nous n’avons écrit que 4 lignes de code qui ne concernent pas l’interface graphique générée unique avec AppWizard. L’efficacité et l’aide apporté par cet outil par rapport à l’exemple de la fenêtre de notre 1er partie est incontestable.
Nous allons maintenant aborder la 3e partie de notre article : l’agenda. Cette Agenda sera développé avec les outils précédemment décrits et une classe des MFC qui gère pour nous les liste chaînés. Vous verrez ainsi, une autre classe des MFC qui nous facilite la vie.

Suite de l'article

Sommaire
Partie 1 - Structure d'un programme Windows
Partie 2 - Les MFC et les outils de développement proposés par Visual C++
Partie 3 - Création d'un agenda grace aux MFC



En Savoir Plus 
Evaluez cet article 


Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft



Retrouvez ci-dessous les autres sections du Laboratoire Microsoft