C/Visual C - interrupciones de teclado y relog

 
Vista:

interrupciones de teclado y relog

Publicado por sdf (1 intervención) el 09/01/2003 19:30:36
Hola. Tengo un pequeño programa que a traves de un menu, al seleccionar una opcion, cambia el color de las letras cada vez que pulsas una tecla y al seleccionar otra hace que la pantalla cambie de color rapidamente, el problema es que al volver al menu las letras y el fondo se quedan con el ultimo color aparecido y yo quiero que siempre tenga el mismo color. ¿alguna sugerencia?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Restablecer colores al volver al menú en un programa de consola

Publicado por Alejandro (946 intervenciones) el 23/04/2025 23:45:17
Para asegurarte de que los colores de las letras y el fondo se restablezcan a un estado predeterminado cada vez que vuelvas al menú en tu programa de consola, puedes seguir estos pasos:

1. Definir colores predeterminados



Primero, define los colores predeterminados que deseas utilizar para el texto y el fondo. Por ejemplo, puedes usar el color blanco para el texto y negro para el fondo.

2. Función para restablecer colores



Crea una función que restablezca los colores de la consola a los valores predeterminados. Aquí tienes un ejemplo de cómo hacerlo en C utilizando la API de Windows:

1
2
3
4
5
6
7
8
#include <windows.h>
#include <stdio.h>
 
void SetDefaultColors() {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); // Blanco
    system("cls"); // Limpiar la pantalla
}

3. Llamar a la función al volver al menú



Cada vez que vuelvas al menú, asegúrate de llamar a esta función para restablecer los colores. Aquí tienes un ejemplo de cómo podrías estructurar tu menú:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void ShowMenu() {
    SetDefaultColors(); // Restablecer colores al mostrar el menú
    printf("1. Cambiar color de letras\n");
    printf("2. Cambiar color de fondo\n");
    printf("3. Salir\n");
}
 
int main() {
    int option;
 
    while (1) {
        ShowMenu();
        printf("Selecciona una opción: ");
        scanf("%d", &option);
 
        switch (option) {
            case 1:
                // Lógica para cambiar el color de las letras
                break;
            case 2:
                // Lógica para cambiar el color de fondo
                break;
            case 3:
                return 0; // Salir del programa
            default:
                printf("Opción no válida. Intenta de nuevo.\n");
        }
    }
 
    return 0;
}

4. Restablecer colores en otras funciones



Si tienes funciones que cambian los colores de la consola, asegúrate de que también restablezcan los colores al finalizar o al volver al menú. Por ejemplo:

1
2
3
4
5
void ChangeTextColor() {
    // Lógica para cambiar el color de las letras
    // ...
    SetDefaultColors(); // Restablecer colores alfinalizar
}

Resumen



Con estos pasos, cada vez que vuelvas al menú, los colores de las letras y el fondo se restablecerán a los valores predeterminados que hayas definido. Esto asegurará que tu programa tenga un aspecto consistente y que los usuarios no se confundan con los colores que quedan de las opciones anteriores. ¡Espero que esto te ayude, SDF!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar