Pour transformer un programme qui utilise des entrees/sorties en mode texte,
(Attention: les entrees/sorties qui utilisent les flux stdin et stdout son interdits)
en un programme qui utilise des entrees/sorties simultanement en mode texte
et en mode graphique sous Windows (i.e : on AJOUTE du graphisme en plus) :

   1er cas: pas de fichier projet (un seul fichier .cpp)

	1) Ajouter #include <wingraph.hpp> (dernier #include)
	2) Renommer void main(void) en void principal(void)

   2eme cas: un fichier projet (plusieurs fichiers .c)

	1) Ajouter #include <wingraph.h> dans le(s) module(s)
	     qui utilise(nt) les fonctions d'entrees/sorties 
	2) Ajouter le module wingraph.c  votre projet
           (tous les fichiers de votre projet doivent avoir
             l'extension .c au lieu de l'extension .cpp)
	   (ce fichier est dans le repertoire include du compilateur)
	3) Renommer void main(void) en void principal(void)
	 
Exemple simple d'un programme qui utilise du graphisme sous Windows
Compilez toujours en modele LARGE pour eviter les problemes... 

Auteur : Guillaume LAMONOCA
Adresse : 7 allee lucien mazan
          13500 MARTIGUES
          FRANCE
E-mail : GL@gen4.pressimage.fr
(Donations expected !)

#include <stdio.h>
#include <wingraph.hpp>		/* Doit etre en derniere position des #include */

void principal(void) /* main() doit devenir principal() */
{
	int nb_reconnus,valeur;
	int x,y,boutons;

	 /* conservation du mode texte */

	clrscr();	 
	gotoxy(2,2);
	printf("Un exemple simple utilisant WINGRAPH.H\n\n");
	printf("Entrez un nombre :");
	nb_reconnus=scanf("%d",&valeur);
	printf("valeur:%d (valeur de retour de scanf:%d)\n",valeur,nb_reconnus);
	printf("Cliquez avec le bouton gauche ou pressez 'Return' pour quitter");

	/* mode graphique possible simultanement */

	couleur(BLANC);		rectangle_plein(10,200,30,30);
	couleur(BLEU);		rectangle_plein(40,200,30,30);
	couleur(VERT);		rectangle_plein(70,200,30,30);
	couleur(CYAN);		rectangle_plein(100,200,30,30);
	couleur(ROUGE);		rectangle_plein(130,200,30,30);
	couleur(VIOLET);	rectangle_plein(160,200,30,30);
	couleur(KAKI);		rectangle_plein(190,200,30,30);
	couleur(GRIS_CLAIR);	rectangle_plein(220,200,30,30);
	couleur(GRIS);		rectangle_plein(250,200,30,30);
	couleur(MAGENTA);	rectangle_plein(280,200,30,30);
	couleur(VERT_CLAIR);	rectangle_plein(310,200,30,30);
	couleur(CYAN_CLAIR);	rectangle_plein(340,200,30,30);
	couleur(MARRON);	rectangle_plein(370,200,30,30);
	couleur(VIOLET_CLAIR); 	rectangle_plein(400,200,30,30);
	couleur(JAUNE);		rectangle_plein(430,200,30,30);
	couleur(NOIR);		rectangle_plein(460,200,30,30);

	cercle(50,50,20);			/* x,y,diametre    	*/
	cercle_plein(100,100,40);      		/* x,y,diametre   	*/
	ellipse(150,50,20,30);			/* x,y,larg,haut    	*/
	ellipse_pleine(300,120,40,20);		/* x,y,larg,haut    	*/
	rectangle(200,100,50,70);		/* x,y,larg,haut	*/
	rectangle_plein(250,100,50,70);		/* x,y,larg,haut 	*/
	droite(0,0,LARGEUR-1,HAUTEUR-1);	/* x1,y1,x2,y2   	*/
	pixel(60,60);				/* x,y           	*/

	couleur_fond(VERT);			
	outtextxy(20,250,"Hello");		/* x,y,chaine	*/
	couleur_fond(COULEUR_PRECEDENTE); /* on reprend la couleur de fond blanche */

	couleur(ROUGE);
	rectangle(0,0,largeur_caractere()*40,hauteur_caractere()*3);

	/* gestion de la souris et du clavier */

	couleur(COULEUR_PRECEDENTE);  /* on reprend la couleur de trace noire */
	while (souris(&x,&y,&boutons)!=BOUTON_GAUCHE_ENFONCE)
	{	
		if (kbhit()) /* non nul si on a presse une touche */
			if (getch()=='\r')
				break; 
		pixel(x,y);
		rafraichir();
		/* mise  jour forcee du contenu de la fenetre */
	}

	/* Quand le programme s'arrete sa fenetre disparait	 */
	/* Prevoir une attente quelconque (ex: getch())          */
}

Remarque :

De nombreuses constantes sont predefinies :
- Les constantes pour les couleurs (voir exemple)
- LARGEUR et HAUTEUR donnent la taille de la fenetre graphique
- BOUTON_GAUCHE_ENFONCE, BOUTON_GAUCHE_RELACHE,
  BOUTON_DROIT_ENFONCE et BOUTON_DROIT_RELACHE sont
  utiles pour detecter les evenements souris avec la fonction souris(...).

Les fonctions largeur_caractere() et hauteur_caractere() sont utiles pour
connatre la largeur d'une colonne de texte en pixel ou la hauteur d'une
ligne de texte en pixel, ceci afin de faire correspondre vos graphismes avec
le texte. Notez que la fonction couleur(...) ne determine pas seulement la couleur
du graphisme , elle determine aussi la couleur du texte affiche avec printf(...).

De maniere automatique, si une succession de printf(...) entraine une sortie
de l'ecran (vers le bas de l'ecran), le programme sera gele et attendra la pression
de la touche Return pour effacer l'ecran et redemarrer l'affichage en haut de l'ecran.
(En pur mode texte, il y aurait eu un defilement de l'ecran vers le haut)

Lorsque le programme attend une touche le refraichissement de l'image est
automatique. Parfois (attente d'un click souris) il vous faudra provoquer
vous meme ce rafraichissement  avec la fonction  rafraichir(). Pouvoir decider
de l'instant de rafraichissement de la fenetre permet de faire apparaitre d'un 
seul coup des graphismes, qui autrement, auraient ete visibles tout au long
de leur elaboration (ce qui peut provoquer des clignotements indesirables).
