Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Il y a 81 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

couleur de texte en C

 
n°10892
linbeg
Profil : Jeune recrue
Posté le 18-12-2004 à 12:18:40  profilanswer
 

Bonjour à tous,
 
Je cherche desespérémentà savoir comment changer la couleur du texte en c en mode Dos et si possible, les librairies correspondantes.
Je travaille sous MSDEV.
 
Merci d'avance

n°10895
podone
POD first ONE of best game
Profil : Habitué
Posté le 20-12-2004 à 01:52:38  profilanswer
 

Voici une solution :

Code :
  1. #define _WIN32_WINNT 0x0500
  2. #include <wincon.h>
  3. // Caractere de separation de commandes
  4. #define  CMDSEPARATORCHAR              (' ')
  5. // Origine de fenetre
  6. COORD                   ORIGINE =
  7. {  0, 0 };
  8. int _tmain(int argc, char* argv[])
  9. {
  10. // Resultat de fonction API
  11. BOOL                    bResultat;
  12. // Handle de console
  13. HANDLE                  hConsole;
  14. // Informations de la console
  15. CONSOLE_SCREEN_BUFFER_INFO xConsoleScreenBufferInfo;
  16. // Nombre de caracteres ecrits
  17. DWORD                   dwNbrOfCharWritten;
  18.    // Creer la console
  19.    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  20.    // Recuperer les informations de la console
  21.    bResultat = GetConsoleScreenBufferInfo(hConsole, &xConsoleScreenBufferInfo);
  22.    // Changer la couleur de texte et de fond
  23.    bResultat = FillConsoleOutputCharacter(hConsole,
  24.                                           CMDSEPARATORCHAR,
  25.                                           xConsoleScreenBufferInfo.dwMaximumWindowSize.X * xConsoleScreenBufferInfo.dwMaximumWindowSize.Y,
  26.                                           ORIGINE,
  27.                                           &dwNbrOfCharWritten);
  28.  
  29.    bResultat = FillConsoleOutputAttribute(hConsole,
  30.                                           FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | BACKGROUND_BLUE,
  31.                                           dwNbrOfCharWritten,
  32.                                           ORIGINE,
  33.                                           &dwNbrOfCharWritten);
  34.  
  35.    bResultat = SetConsoleCursorPosition(hConsole, ORIGINE);
  36.    bResultat = SetConsoleTextAttribute(hConsole,
  37.                                        FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | BACKGROUND_BLUE);
  38.  
  39. return 0;
  40. }


Message édité par podone le 20-12-2004 à 02:00:45
n°10897
linbeg
Profil : Jeune recrue
Posté le 20-12-2004 à 12:47:25  profilanswer
 

J'ai essayé la solution que tu me propose mais mon compilateur n'apprécie apparemment pas la librairie wincon.h Je ne suis pas en mode Win32 mais en mode Console. N'y a t-il pas de fonction plus simple ? J'ai vu sur un site qu'il suffisez de mettre les fonction textcolor et textbackground, malheureusement cela ne fonctionne pas non plus sur mon ordi... :(

n°10899
podone
POD first ONE of best game
Profil : Habitué
Posté le 20-12-2004 à 21:01:23  profilanswer
 

As-tu bien mis l'instruction "#define _WIN32_WINNT 0x0500" ?

n°10931
linbeg
Profil : Jeune recrue
Posté le 24-12-2004 à 14:50:33  profilanswer
 

oui, mais le compilateur trouve plein d'erreur dans le fichier wincon.h
Mais y'a un truc bizarre sur mon ordi c que le fichier conio.h est censé contenir les fonctions textcolor, etc... mais cela ne passe pas non plus, j'ai pourtant essayé aussi avec un compilateur Turbo C++...
J'suis desespéré... :(

n°10935
podone
POD first ONE of best game
Profil : Habitué
Posté le 25-12-2004 à 17:09:18  profilanswer
 

L'exemple que j'ai fourni a été créé sous Visual Studio .NET, projet console Win32.


Aller à :
Ajouter une réponse