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
|
|
 |
Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft
|
|