• Aucun résultat trouvé

Licence Informatique Interface Homme Machine

N/A
N/A
Protected

Academic year: 2022

Partager "Licence Informatique Interface Homme Machine"

Copied!
1
0
0

Texte intégral

(1)

Licence Informatique Interface Homme Machine

TD 4

Interfaces Visuelles – Menus – Tracé de dessin

On souhaite construire une application appelée IHM, en Visual C++ basée sur une architecture document/vue SDI avec des fonctionnalités simples pour tracer une ligne, un cercle ou un rectangle avec une couleur au choix (rouge, vert, jaune, noir).

Le menu « Element » comporte les options de choix de la forme : ligne, cercle ou rectangle, et le menu « Couleur » comporte le choix des couleurs : rouge, vert, jaune ou noir.

Le principe de fonctionnement est simple : l’utilisateur sélectionne dans le menu la forme et la couleur qu’il souhaite, puis il clique dans la fenêtre et la forme choisie s’affiche dans la fenêtre (avec une taille par défaut). Le point de clic est le centre du cercle, le centre du rectangle ou bien le point haut gauche d’une ligne.

Dans ce premier prototype, la taille des éléments est fixé a priori. Les cercles ont un diamètre de 100 pixels, les rectangles sont des carrés de 100x100 et les lignes ont aussi une longueur et un sens fixes.

Pour développer cette application une hiérarchie de classes a été mise en place pour représenter les objets géométriques.

La classe de base « CElement » comporte un attribut pour la couleur et l’épaisseur du trait du dessin. Cette classe possède 3 classes dérivées « CLine », « CCercle » et « CRectangle ». Une ligne est définie par ses deux extrémités, un cercle par son centre et son rayon et un rectangle par ses points haut gauche et bas droit.

Chaque classe surcharge une méthode de dessin « Draw » définie comme virtuelle dans la classe

« CElement » :

virtual void Draw (CDC *pDC) ;

Chaque classe possède un constructeur par défaut et un constructeur avec paramètres.

1. Décrire en C++ cette hiérarchie de classes (.h et .cpp)

2. Pour gérer l’ensemble des éléments géométriques construits , on utilise une liste générique (de la bibliothèque ATL (Active Template Library)). Cette liste est déclarée et gérée dans la classe

« CIHMDoc » avec la déclaration et les méthodes suivantes : CTypedPtrList<CObList,CElement*> m_ElementList;

1

(2)

POSITION GetListHeadPosition();

CElement* GetNext(POSITION &aPos);

void AddElement(CElement *pelem);

Décrire ces méthodes en C++.

3. Pour gérer la forme courante, la couleur courante et l’épaisseur courante du dessin en cours, on utilise trois attributs stockés dans la classe CIHMDoc et on définit les méthodes associées :

COLORREF m_color;

int m_element;

int m_penwidth;

int GetElementType();

COLORREF GetElementColor();

int GetElementWidth();

Décrire ces méthodes en C++.

4. On définit deux gestionnaires d’événement (dans la classe CIHMDoc) pour chaque option du menu Element et du menu Couleur.

a. Un gestionnaire (de type ON_COMMAND) qui mémorise la forme ou la couleur choisie dans l’attribut correspondant de la classe.

b. Un gestionnaire (de type ON_COMMAND_UI) qui permet de mettre un coche dans le menu devant l’option choisie.

Décrire en C++ ces gestionnaires.

5. On gère le clic souris (message WM_LBUTTONDOWN) dans la classe CIHMView. Le clic dans la vue de la fenêtre principale provoque

la création d’un nouvel élément du type sélectionné,

son ajout dans la liste des éléments,

et le rafraîchissement de la vue.

Décrire la méthode CreateElement et les gestionnaires OnLButtonDown, et OnDraw nécessaires.

CElement* CreateElement(CPoint);

virtual void OnDraw(CDC* pDC);

void OnLButtonDown(UINT nFlags, CPoint point);

2

Références

Documents relatifs

 2- Le monde de la chimie : extraction, séparation, identification des espèces chimiques.. 2.1- Techniques d’extraction d’espèces

Comment mesurer la distance Terre - Lune, de la profondeur d’un fond marin.. Usage

 Pour les petits soins indiquez uniquement le nom prénom, l’âge et la ville d’origine.  Pour les actes de secourisme avec évacuation remplissez une

li) La loi de répartition de courant étant don- née à llIl ractCllI' 111llltiplicatir près, déterminer ce facleur, ou, ce qui revient au même, la vi- tesse moyenne du courant, pour

Dans un article publié en 2011 portant sur l’effet nocebo et sa pertinence pour la pratique clinique, des chercheurs examinaient des traitements pour l’hyper- plasie bénigne de

objrs.Find 0, adSearchForward objrs.Find 0, adSearchForward objrs.Find 0, adSearchBackward objrs.Find 0, adSearchBackward objrs.Find &#34;[Nom] LIKE 'A*'&#34;. objrs.Find

Ajouter dans cette application une barre à outils qui propose les mêmes options (couleurs, formes, épaisseurs, fontes) que les menus principaux ou contextuels mais sous forme

A l’aide du CM7 (disponible sur le site ufrsciencestech.u-bourgogne.fr) , mettre en place le mécanisme de sérialisation dans l’application IHM permettant le fonctionnement des