La Web del Programador: Comunidad de Programadores
 
    Pregunta:  24445 - HACER CURSOR NO VISIBLE
Autor:  Juanjo Alonso
En una aplicacion de tipo consola necesito hacer que el cursor desaparezca:

En el compilador de Borland existe la funcion _setcursortype(...) para conseguir borrar el cursor de la pantalla. ¿Y en microsoft? Estoy usando este compilador y no encuentro nada parecido. Mi pregunta es si existe alguna funcion o algo (c/c++) en el de microsoft que lo haga.

He probado a utilizar la int 10h (funcion 01h) dando valores fuera de rango y no funciona; como era de esperar el entorno visual c++ no responde pero esto no pasa si hago lo mismo en el compilador de borland.
Muchas gracias

  Respuesta:  José Pérez
Lo primero que debería decir es que no es muy recomendable crear aplicaciones de tipo consola en Visual C, por varias razones:

Porque no son aplicaciones Dos reales (sólo funcionarán en modo Dos dentro de Windows) y porque el uso de la memoria, recursos, etc realmente son de Windows, no Dos. Tampoco se podrán manejar modelos de memoria ni habrá diferenciación entre punteros far y near y muchas funciones y palabras clave habituales en la programación Dos las considerará obsoletas y las mostrará como erróneas.

A pesar de todo, si quieres seguir adelante, la siguiente rutina funcionará en cualquier compilador de C/C++ posterior a 1990:

void mostrar_cursor (boolean i)
{
if (i == false)
{
_asm {
mov cx, 0x2000;
mov ah, 0x01;
int 0x10;
}

}
else
{
_asm {
mov ch, 6;
mov cl, 7;
mov ah, 0x001;
int 0x10;
}
}
}