elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Se muestra o no el cursor depende de...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Se muestra o no el cursor depende de...  (Leído 297 veces)
Meta


Desconectado Desconectado

Mensajes: 3.202



Ver Perfil WWW
Se muestra o no el cursor depende de...
« en: 27 Julio 2020, 15:45 »

Hola:

En C++ nativo con Visual Studio Community 2019, tengo este código,  que no se muestra el cursor.

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.     // Mostrar caracteres correctamente en pantalla y título de la ventana.
  23. SetConsoleOutputCP(65001);
  24. wchar_t titulo[128];
  25. MultiByteToWideChar(CP_UTF8, 0, "Título de la ventana. Win32 C++ 2019.", -1, titulo, 128);
  26. SetConsoleTitle(titulo);
  27.  
  28. // Tamaño de la pantalla. Se cambia en los dos últimos dígitos.
  29. SMALL_RECT r = { 0, 0, 49, 9 }; // X = 49, Y = 9.
  30. SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &r);
  31.  
  32. // Cambio color de 8 (gris), color letras 0 (negro).
  33. //system("color 80");
  34.  
  35. // Ocultar cursor.
  36. CONSOLE_CURSOR_INFO cci;
  37. GetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
  38. cci.bVisible = 0; // 0 oculta. 1 muestra cursor.
  39. SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
  40.  
  41. // Mostrar textos en pantalla.
  42. cout << "Terminarías. Conocerías. Título. Analógico. \n";
  43. cout << "Muchas gracias mi muy distinguido amigo.";
  44.  
  45. // Limpiar pantalla.
  46. system("cls");
  47.  
  48. // Mostrar textos en pantalla.
  49. cout << "Se escribe este texto después de haber " << endl;
  50. cout << "borrado el anterior." << endl;
  51.  
  52. // Posición del cursor.
  53. gotoxy(5, 5);
  54.  
  55. cout << "Posición." << endl;
  56.  
  57. // Ocultar cursor.
  58. CONSOLE_CURSOR_INFO cci2;
  59. GetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci2);
  60. cci2.bVisible = 1; // 0 oculta. 1 muestra cursor.
  61. SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci2);
  62.  
  63. // Esperando pulsar Enter para salir.
  64. cin.get();
  65. return 0;
  66. }

Si quito este código.
Código
  1. // Cambio color de 8 (gris), color letras 0 (negro).
  2. system("color 80");

Se muestra el cursor parpadeando como siempre.

¿Esto es normal?

Para mi no lo es, una cosa es cambiar el color de la ventana y letras, es independiente al parpadeo del cursor si está activado o no.

Saludos.


En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
NEBIRE


Desconectado Desconectado

Mensajes: 2.308


Ver Perfil
Re: Se muestra o no el cursor depende de...
« Respuesta #1 en: 30 Julio 2020, 18:25 »

El cursor, también tiene su color...

En general usa un color inverso al del color del fondo así se asegura que se vea al no coincidir, pero el inverso de H808080 es... el mismo valor o casi H797979, en la práctica dos colores que se diferencian en casi nada no se aprecian como distintos.

El cursor, usa dos colores, uno para el tiempo 'visible' y otro para el tiempo 'invisible', cuando dichos colores son distintos, se percibe el parpadeo, cuando ambos colores son iguales o casi, no se percibe parpadeo, pero ese parpadeo se produce siempre (es decir se alterna entre dos colores siempre).

...pasa situaciones similares cuando un programa elige un color 'transparente' y luego una imagen acaba incluyendo dicho color en su gama... malogrando así la visualización correcta.

También sucede con 'objetos que simulan una textura '3D', como botones, cuadros de texto, etc... usar uno de los colores que se usan para generar dicho relieve, viene a anular parcialmente el relieve, pués forma parte del fondo que le rodea.

Cuando uno altera colores, deber tener claro, si tendrá 'efectos secudarios'... y en general hay que evitar usar ciertos colores (como el 'rosa chicle' o  el 'gris medio' (H808080), es un color a evitar) en programas (ventanas) que no son 100% tuyos... pués puede no saberse que postura/función podrían tener tales colores...
El caso más típico a evitar es usar el mismo color para el texto que para el fondo... (pués no se distinguiría el texto).


« Última modificación: 30 Julio 2020, 18:26 por NEBIRE » En línea

Meta


Desconectado Desconectado

Mensajes: 3.202



Ver Perfil WWW
Re: Se muestra o no el cursor depende de...
« Respuesta #2 en: 31 Julio 2020, 02:19 »

Buenas:

Pues sí, es tal como lo dices, nunca lo he imaginado, ya que con otros lenguajes como C#, incluso el C++ CLR .net no me pasa, si cambio las letras, cambio el cursor automaticamente también.

Código
  1. system("color 1F");

Así está mejor.

Muchísimas gracias.  ;-)
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
El crypter depende del troyano???
Análisis y Diseño de Malware
suche_antrax 8 5,826 Último mensaje 22 Mayo 2011, 02:42
por suche_antrax
Promedio o depende « 1 2 »
Foro Libre
ANTRUCK 16 5,662 Último mensaje 26 Julio 2011, 01:34
por ANTRUCK
Instalar programas en gnu/linux depende del escritorio?
GNU/Linux
ccrunch 7 2,624 Último mensaje 16 Julio 2012, 16:53
por ccrunch
Aprobar depende de las descargas
Noticias
wolfbcn 0 635 Último mensaje 1 Junio 2013, 01:51
por wolfbcn
Desarrollan un sistema de autolocalización de dispositivos IoT que no depende...
Noticias
wolfbcn 0 434 Último mensaje 28 Mayo 2018, 14:13
por wolfbcn
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines