Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Meta en 13 Marzo 2022, 21:59 pm



Título: [Info] Configuración de ventanas de nuestros programas
Publicado por: Meta en 13 Marzo 2022, 21:59 pm
Buenas compañer@s del foro:

Dejo en los lenguajes en forma de consola que puedan configurar de forma básica título del programa en la ventana, tamaño, colores y posición de los textos con los lenguajes como C++ nativo, C++ CLI o .Net, C# y VB .Net.

Me han preguntado por privado estas cosas y se los dejo aquí en el cual de forma rápida hay ejemplos rápidos. Todos hechos con Visual Studio 2022. :)

C++ nativo:
Código
  1. #include <iostream>
  2. #include <windows.h> // Para mostrar texto en el título de la ventana.
  3. #include <stdio.h>   // Cambio color de fondo y letras.
  4.  
  5. using namespace std;
  6. //using std::cout;
  7. //using std::cin;
  8.  
  9. // Función posición del cursor.
  10. void gotoxy(int x, int y)
  11. {
  12. HANDLE hcon;
  13. hcon = GetStdHandle(STD_OUTPUT_HANDLE);
  14. COORD dwPos;
  15. dwPos.X = x;
  16. dwPos.Y = y;
  17. SetConsoleCursorPosition(hcon, dwPos);
  18. }
  19.  
  20. int main()
  21. {
  22. #pragma region "Configuración ventana."
  23. // Mostrar caracteres correctamente en pantalla y título de la ventana.
  24. SetConsoleOutputCP(65001);
  25. wchar_t titulo[128];
  26. MultiByteToWideChar(CP_UTF8, 0, "Título de la ventana", -1, titulo, 128);
  27. SetConsoleTitle(titulo);
  28.  
  29. // Tamaño de la pantalla. Se cambia en los dos últimos dígitos.
  30. SMALL_RECT r = { 0, 0, 80, 20 }; // X = 49, Y = 9.
  31. SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &r);
  32.  
  33. // Cambio color de A (verde claro), color letras 0 (negro).
  34. system("color A0");
  35.  
  36. // Ocultar cursor.
  37. CONSOLE_CURSOR_INFO cci;
  38. GetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
  39. cci.bVisible = 0; // 0 oculta. 1 muestra cursor.
  40. SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
  41. #pragma endregion
  42.  
  43. gotoxy(20, 8);
  44. cout << "Estás leyendo este texto en pantalla. C++ nativo";
  45.  
  46. cout << endl; // Nueva línea.
  47. system("pause");
  48. return 0;
  49. }

C++ CLI/.Net:
Código
  1. #include "pch.h"
  2.  
  3. using namespace System;
  4.  
  5. int main(array<System::String ^> ^args)
  6. {
  7.    #pragma region "Configuración ventana."
  8.    // Título de la ventana.
  9.    Console::Title = "Título de la ventana";
  10.  
  11.    // Tamaño de la ventana, x, y o, ancho y alto.
  12.    const Byte ancho = 80;
  13.    const Byte alto = 20;
  14.    Console::SetWindowSize(ancho, alto);
  15.  
  16.    // Color de fondo.
  17.    Console::BackgroundColor = ConsoleColor::Black;
  18.  
  19.    // Color de las letras.
  20.    Console::ForegroundColor = ConsoleColor::Yellow;
  21.  
  22.    // Limpiar pantalla y dejarlo todo en color de fondo.
  23.    Console::Clear();
  24.  
  25.    // Visible el cursor. // No! Así lo haces invisible.
  26.    Console::CursorVisible = false;
  27.    #pragma endregion
  28.  
  29.    // Posición del cursor.
  30.    int anchoX = 20;
  31.    int altoY = 8;
  32.    Console::SetCursorPosition(anchoX, altoY);
  33.  
  34.    // Mostrar textos.
  35.    Console::WriteLine("Estás leyendo este texto en pantalla. C++ CLI");
  36.  
  37.    // Pulse cualquier tecla para salir.
  38.    Console::ReadKey();
  39. }
  40.  

C#:
Código
  1. using System;
  2.  
  3. namespace Configuracion_ventanas_Consola_CS
  4. {
  5.    internal class Program
  6.    {
  7.        static void Main(string[] args)
  8.        {
  9.            #region Configuración ventana.
  10.            // Título de la ventana.
  11.            Console.Title = "Título de la ventana";
  12.  
  13.            // Tamaño de la ventana, x, y o, ancho y alto.
  14.            const byte ancho = 80;
  15.            const byte alto = 20;
  16.            Console.SetWindowSize(ancho, alto);
  17.  
  18.            // Color de fondo.
  19.            Console.BackgroundColor = ConsoleColor.Black;
  20.  
  21.            // Color de las letras.
  22.            Console.ForegroundColor = ConsoleColor.Green;
  23.  
  24.            // Limpiar pantalla y dejarlo todo en color de fondo.
  25.            Console.Clear();
  26.  
  27.            // Visible el cursor. // No! Así lo haces invisible.
  28.            Console.CursorVisible = false;
  29.            #endregion
  30.  
  31.            // Posición del cursor.
  32.            int anchoX = 20;
  33.            int altoY = 8;
  34.            Console.SetCursorPosition(anchoX, altoY);
  35.  
  36.            // Mostrar textos.
  37.            Console.WriteLine("Estás leyendo este texto en pantalla. C#");
  38.  
  39.            // Pulse cualquier tecla para salir.
  40.            Console.ReadKey();
  41.        }
  42.    }
  43. }
  44.  

Visual Basic .Net:
Código
  1. Module Module1
  2.  
  3.    Sub Main()
  4. #Region "Configuración ventana."
  5.        'Título de la ventana.
  6.        Console.Title = "Título de la ventana"
  7.  
  8.        'Tamaño de la ventana, x, y o, ancho y alto.
  9.        Const ancho As Byte = 80
  10.        Const alto As Byte = 20
  11.        Console.SetWindowSize(ancho, alto)
  12.  
  13.        'Color de fondo.
  14.        Console.BackgroundColor = ConsoleColor.Black
  15.  
  16.        'Color de las letras.
  17.        Console.ForegroundColor = ConsoleColor.Blue
  18.  
  19.        'Limpiar pantalla y dejarlo todo en color de fondo.
  20.        Console.Clear()
  21.  
  22.        'Visible el cursor. // No! Así lo haces invisible.
  23.        Console.CursorVisible = False
  24. #End Region
  25.  
  26.        'Posición del cursor.
  27.        Dim anchoX As Integer = 20
  28.        Dim altoY As Integer = 8
  29.        Console.SetCursorPosition(anchoX, altoY)
  30.  
  31.        'Mostrar textos.
  32.        Console.WriteLine("Estás leyendo este texto en pantalla. VB .Net")
  33.  
  34.        'Pulse cualquier tecla para salir.
  35.        Console.ReadKey()
  36.    End Sub
  37.  
  38. End Module

Un cordial saludos.