Licence Informatique
Module Interface Homme Machine TD 5
Boîtes de dialogue
Objectifs : Ajouter dans l'application IHM 3boîtes de dialogues destinées à illustrer l'usage : - des boutons d'incrémentation, des boutons radio
- des listes déroulantes (de type combo box), et une boîte de dialogue à onglets.
Bouton d'incrémentation
1. Modifier le menu principal de l'application pour créer sous le menu
« Configuration » une option « Epaisseur » et une ressource de dialogue utilisée par cette option.
Propriétés associées au bouton d'incrémentation :
Dans l'ordre des tabulations, la zone d'édition (Format -> Ordre de tabulations) doit précéder le bouton d'incrémentation (Auto Buddy=true, Set Buddy Integer = true).
2. Associer une classe à la boîte de dialogue. Définir dans cette classe une variable destinée à gérer l'épaisseur du trait (m_epaisseur). Cette variable sera associée à la zone d’édition du bouton d’incrémentation avec une valeur min=1 et une valeur max=10.
3. Définir le gestionnaire associé à la commande Configuration -> Epaisseur (dans CIHMDoc) qui affiche la boîte de dialogue et récupère la valeur sélectionnée pour l’affectée à la variable correspondante de la classe CIHMDoc.
Liste déroulante (Combo Box)
4. Modifier le menu principal de l'application pour créer sous le menu
« Configuration », une option « Couleur » et une ressource de dialogue utilisée par cette option.
Propriétés de la combo box :
5. Associer une classe à la boîte de dialogue. Définir dans cette classe une variable destinée à gérer la couleur (m_couleur), surcharger la méthode OnInitDialog pour initialiser la liste de valeurs de la combo liste (Propriétés-
> Substitutions) et ajouter un gestionnaire pour le clic sur OK, qui récupère la valeur sélectionnée dans la liste et affecte la valeur correspondante à la variable m_couleur.
6. Définir le gestionnaire associé à la commande Configuration -> Couleur qui affiche la boîte de dialogue et récupère la valeur sélectionnée (dans CIHMDoc).
Boutons Radios
7. Modifier le menu principal de l'application pour créer sous le menu « Configuration », une option « Forme » et une ressource de dialogue utilisée par cette option.
8. Associer une classe à la boîte de dialogue.
Définir dans cette classe une variable destinée à gérer la forme (m_forme), surcharger la méthode OnInitDialog pour initialiser la forme cochée par défaut (ici ligne) et ajouter des gestionnaires pour les clics sur les boutons radio, qui affectent la valeur sélectionnée à la variable m_forme.
9. Définir le gestionnaire associé à la commande Configuration -> Forme qui affiche la boîte de dialogue et récupère la valeur sélectionnée (dans CIHMDoc).
Boîtes de dialogue à onglets
10. Modifier le menu principal pour ajouter sous le menu « Configuration » une option « Paramètres » qui permet l'ouverture d'une boîte de dialogue à onglets avec une première page qui affiche un choix de couleur et une deuxième page qui affiche un choix d'éléments.
Onglets de la boîte
Chaque page se définit comme une ressource dialogue.
11. Définir la classe associée à la 1ère ressource. La classe créée (ex : CCouleurPage) doit hériter de la classe CPropertyPage (et non de CDialog). On définit une variable m_couleur pour stocker le résultat de la sélection.
Pour initialiser la page, on surcharge la méthode virtuelle OnSetActive qui est exécutée lorsque l'onglet est choisi. Ici, on remplit la combo liste et la méthode virtuelle OnKillActive qui est sélectionnée quand l’onglet devient inactif.
12. Définir la classe associée à la 2ème ressource. La classe créée (ex : CFormePage) doit aussi hériter de la classe CPropertyPage On définit une variable m_forme pour stocker le résultat de la sélection.
Pour initialiser la page, on surcharge la méthode virtuelle OnSetActive qui est exécutée lorsque l'onglet est choisi. Ici, on coche l'élément actuellement sélectionné. Et on définit un gestionnaire associé à chaque bouton.
13. Définir le gestionnaire associé à Configuration -> Paramètres (dans CIHMDoc). C'est le gestionnaire qui construit la fenêtre à onglets, qui lui ajoute les pages créées, lance l'instruction DoModal et récupère ensuite les données.