Bonjour,
Voilà un petit temps que je chipote en C avec l'API relative à la gestion de la console. Le temps commence à me manquer et je suis sur un problème apparemment simple mais dont je ne puis me sortir. Je voudrais pouvoir changer les attributs d'un bloc de caractères, et je voudrais pouvoir écrire pour la première fois un bloc de caractère directement dans une couleur précise.
Pour la première partie de mon problème, il y a WriteConsoleOutputAttribute. Mais cette fonction ne me permet de changer l'attribut que d'un caractère à la fois. En effet, quand je spécifie un nombre plus grand que 1 pour le 3ème paramètre, seul le premier caractère acquiert les caractéristiques demandées, les suivant prennent des couleurs aléatoires sans que je sache pourquoi. Je dois donc écrire une boucle comme celle-ci
Code :
- COORD txt;
- WORD attr;
- attr = BACKGROUND_RED | FOREGROUND_GREEN;
- DWORD len = 1;
- WORD n;
- int i;
- txt.X = 0;
- txt.Y = 0;
- for (i = 0; i < 8; i++)
- {
- WriteConsoleOutputAttribute (hStdout, &attr, len, txt, &n);
- txt.X++;
- }
|
Ok, ça fonctionne, mais ce serait mieux si WriteConsoleOutputAttribute tenait ses promesses... où est mon problème?
En ce qui concerne la seconde partie de mon problème, et bien je dois ne pas bien comprendre la msdn parce que je ne trouve pas de fonction qui me permette d'écrire simplement une série de caractères directement dans une couleur donnée. Est-ce que quelqu'un serait prêt à me montrer un exemple simple?
Je vous remercie d'avance
Florimond
Message édité par Florimondh le 22-03-2010 à 16:30:16