Couleur sous dos [vc++]

Contenu du snippet

Pour tout ceux qui en ont marre de ne pas savoir comment on fait, j'ai enfin reussi a le faire, mettre de la couleur sous DOS par VC++. Donc je le donne parce que je sais que ca va enlever de grosses epines du pieds a certain. J'ai mis des p'tits commentaires.

Donc faut creer un projet DOS ! :o)

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
#include <Winbase.h>
#include <conio.h>
#include <dos.h>

CONSOLE_SCREEN_BUFFER_INFO csbiInfo; // structure dans laquelle on va stocker les infos
                                                               // sur le cmd avant de les changes.

void main()
{
	HANDLE	HCmd = GetStdHandle(STD_OUTPUT_HANDLE); //on se creer un
                                                // handle de sortie sur le cmd.

	char *Mess; // vous verrez un peu plus bas pourquoi.

	GetConsoleScreenBufferInfo(HCmd, &csbiInfo); //on choppe les infos du cmd
                         // et on les stocks

	printf("En gris pas beau !\n");

	getch();

                 // on change la couleur du text, pour le fond c'est le meme principe.
	SetConsoleTextAttribute(HCmd, FOREGROUND_RED|FOREGROUND_INTENSITY);

	Mess = "En rouge un peu plus beau !\n";

	WriteConsole(HCmd, Mess, strlen(Mess), (unsigned long *)strlen(Mess), NULL);

	getch();

                 // autre methode pour ecrire dans le cmd, a part le printf()
	SetConsoleTextAttribute(HCmd, FOREGROUND_BLUE|FOREGROUND_INTENSITY);

	printf("Moi c'est celui la que je prefere !\n");

	getch();

                // on remet les anciens attributs au cmd
	SetConsoleTextAttribute(HCmd, csbiInfo.wAttributes);
	
	printf("On revient a la couleur de base !\n");
} 

/*
Et voila tout les codes de couleurs !

FOREGROUND_BLUE
FOREGROUND_GREEN
FOREGROUND_RED
FOREGROUND_INTENSITY
BACKGROUND_BLUE
BACKGROUND_GREEN
BACKGROUND_RED
BACKGROUND_INTENSITY 

Bon apres vous pouvez creer vous meme les couleurs, elles sont definies comme ca :

#define FOREGROUND_RED       0x0004

Donc faut juste convertir en hexa.

Un exemple ?!!!!

Pour du Cyan :

#define MY_FOREGROUND_CYAN       0x0003

  • /

Conclusion :


Voila, j'espere que comme je le pense j'ai aide bcp de personnes.

Pour tout commentaires, questions ... no pb !

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.