C/Visual C - Funciones control pantalla

 
Vista:

Funciones control pantalla

Publicado por Marcos (2 intervenciones) el 16/09/2002 22:00:52
hola amigos de lwp, quisiera saber que funciones se pueden usar para controlar la pantalla en modo consola, como la funcion gotoxy, pero para visual c, y en que libreria o headers estan incluidas.
gracias
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

Funciones para controlar la pantalla en modo consola

Publicado por Alejandro (913 intervenciones) el 20/03/2025 00:20:40
Marcos, en Visual C++, para controlar la pantalla en modo consola, puedes utilizar varias funciones de la API de Windows, ya que la función `gotoxy` no está disponible. A continuación, te presento algunas funciones útiles y las bibliotecas que debes incluir.

Funciones para controlar la pantalla en modo consola



1. SetConsoleCursorPosition: Esta función se utiliza para establecer la posición del cursor en la consola.

- Prototipo:
1
BOOL SetConsoleCursorPosition(HANDLE hConsoleOutput, COORD dwCursorPosition);

- Uso:
1
2
3
4
5
6
7
8
#include <windows.h>
 
void gotoxy(int x, int y) {
    COORD coord;
    coord.X = x; // Posición X
    coord.Y = y; // Posición Y
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

2. SetConsoleTextAttribute: Esta función se utiliza para cambiar el color del texto y el fondo en la consola.

- Prototipo:
1
VOID SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

- Uso:
1
2
3
4
5
6
#include <windows.h>
 
void setColor(int textColor, int bgColor) {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, (bgColor << 4) | textColor);
}

3. ClearScreen: Para limpiar la pantalla, puedes usar una combinación de `system("cls")` o escribir un código que llame a `FillConsoleOutputCharacter`.

- Uso:
1
2
3
4
5
6
#include <windows.h>
 
void setColor(int textColor, int bgColor) {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, (bgColor << 4) | textColor);
}

Ejemplo completo



Aquí tienes un ejemplo que utiliza estas funciones para controlar la pantalla en modo consola:

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
#include <iostream>
#include <windows.h>
 
using namespace std;
 
void gotoxy(int x, int y) {
    COORD coord;
    coord.X = x;
    coord.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
 
void setColor(int textColor, int bgColor) {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, (bgColor << 4) | textColor);
}
 
void clearScreen() {
    system("cls");
}
 
int main() {
    clearScreen(); // Limpiar la pantalla
    setColor(10, 0); // Establecer color de texto verde sobre fondo negro
    gotoxy(10, 5); // Mover el cursor a la posición (10, 5)
    cout << "¡Hola, mundo!" << endl; // Mostrar mensaje
    return 0;
}

Notas:


- Asegúrate de incluir `<windows.h>` para acceder a las funciones de la API de Windows.
- Las funciones de control de la consola son específicas de Windows. Si necesitas una solución multiplataforma, considera usar bibliotecas como `ncurses` en sistemas Unix/Linux.

Espero que esta información te sea útil para controlar la pantalla en modo consola en Visual C++.
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