PDA

Ver la versión completa : Codigo para poner colores



chemachu
24/11/2003, 13:28
Pues eso, que cual és el codigo de colores para poder cambiar el fondo y las letras en lenguaje C?
Esque he estado buscando por los manuales que hay por la red pero no lo encuentro y mi profesor dice que no se acuerda.
Un saludo.

jgutierrez
24/11/2003, 13:59
C no define ningún estandar para realizar eso.

Piensa que por definición C es portable a diferentes plataformas, y solo acepta el mínimo común denominador de ellas. Por ejemplo un terminal Vt100 es programable en C, pero al no soportar colores, el estandar del lenguaje no los puede incluir.

Dependiendo del compilador de C que uses, y de la plataforma, es probable que puedas hacer esto, aunque eso no será ni estandar ni portable.

Por ejemplo, con los compiladores de Borland para DOS, puedes usar textcolor() y textbackground incluidos en la cabecera conio.h. Los de Microsoft para DOS usan _settextcolor() incluido en graph.h, ...

Si nos dices que entorno usas, podremos ser más concretos en la respuesta.

Diga33
24/11/2003, 21:09
No estarás hablando de códigos ANSI, verdad?
Si es así tengo por aquí un listado de códigos, y también los de la graph.h que te dice jgutierrez. Dime cuáles quieres y te los posteo.

chemachu
24/11/2003, 22:58
Pues utilizo el compilador Borland Turbo C++ versión 3.1 para Windows. Es la que utilizamos en clase, no se si tendra algo que ver.
Lo que quiero saber, es el codigo que tengo que introducir para poder cambiar por ejemplo el fondo de pantalla, el color de las letras...
Espero haberme explicado.

Diga33
25/11/2003, 11:13
Si lo que estás buscando son los códigos ANSI, me he encontrado esta página: http://personal.redestb.es/mgtalles/fortran/ansi.htm.
Échale un vistazo a ver si es lo que buscas (OJO, sólo son para MS-DOS).

Si quieres los números de colores de la graph, son estos:

En CGA/VGA
negro - 0
azul marino - 1
verde - 2
cyan - 3
rojo - 4
morado - 5
marrón - 6
gris claro - 7
gris oscuro - 8
azul claro - 9
verde claro - 10
azul - 11
rojo claro - 12
rosa - 13
amarillo - 14
blanco - 15

En EGA/VGA
negro - 0
azul marino - 1
verde - 2
cyan - 3
rojo - 4
morado - 5
marrón - 20
gris claro - 7
gris oscuro - 56
azul claro - 57
verde claro - 58
azul - 59
rojo claro - 60
rosa - 61
amarillo - 62
blanco - 63


Suerte.

jgutierrez
25/11/2003, 13:36
Generas aplicaciones DOS o Windows?

chemachu
25/11/2003, 18:52
Pues las hago para Windows.
Ese codigo de color por ejemplo el 2, tendra que tener una instrucción para poder introducirlo no?
Es que me gustaría darle un toque personal a los programas y que no salgan con el fondo blanco y las letras en negro.

jgutierrez
25/11/2003, 19:56
Esos código de colores solo funcionan en terminales con emulación ANSI, que creo que no es el caso de la consola de Windows.

Prueba a ver si en el archivo de cabecera conio.h están disponibles las funciones textcolor y textbackgroud cuando compilas para Windows. Lo más probable es que estén, ya que en la última edición del compilador de Borland: C++ Builder 6, están.

Si no lo están, no te quedará más remedio que lidiar con la API de Windows, o buscar por internet alguna librería que lo haga, yo encontré una muy sencillita que funcionaba, pero no recuerdo el nombre.

chemachu
25/11/2003, 21:50
Vale, pues muchas gracias. Ya comentare que tal ha ido.

Bleach
26/11/2003, 08:09
Yo estoy un poco perdido asi que a ver si me aclaro,

Si vas a hacer un programa cuya función principal sea main, entonces tendras que usar la conio.h y usar las funcion textattr, textbackground, textcolor que tienen como parametro un entero que es el color, estos son del 0 al 15, aunque puedes usar el nombre estos colores son:
.

BLACK, /* dark colors */
BLUE,
GREEN,
CYAN,
RED,
MAGENTA,
BROWN,
LIGHTGRAY,
DARKGRAY, /* light colors */
LIGHTBLUE,
LIGHTGREEN,
LIGHTCYAN,
LIGHTRED,
LIGHTMAGENTA,
YELLOW,
WHITE


Si vas a hacer un programa cuya función principal sea winmain, en este caso tendras que usar el winapi, es decir, en el evento del paint tendras que usar un lapiz(pen) con el color deseado para poder pintar con ese color

jgutierrez
26/11/2003, 08:37
La aclaración ha sido buena, solo puntualizar que las funciones que comentas de la API no funcionan en ventanas de consola, únicamente en ventanas GUI.

Alguien puede confirmar si las ventanas de consola de Windows soportan código de escape ANSI?

Bleach
26/11/2003, 09:02
No me he expresado bien, lo que quiero decir es que si este señor quiere hacer una aplicacion de consola o una aplicacion windows, ya se que el winapi no funciona con las aplicaciones de consola, y que para hacer una aplicacion de consola no se usa el winmain. ;)

Bleach
26/11/2003, 09:03
Si se usa el conio.h y quieres sacar las cosas en colorines, tienes que utilizar la funcion cprintf o cputs, si usas printf no sale en colorines.

chemachu
26/11/2003, 23:29
Bueno, ya he probado lo de los colorines. Lo que pasa, que en ms-dos si que he conseguido que vaya, mientras que en para Windows me voy a tener que pegar la currada y buscar por inet ya que lo del winmain no lo vamos a tocar. Muchas gracias por la ayuda.