Foros del Web » Programación para mayores de 30 ;) » C/C++ »

controlar cursor

Estas en el tema de controlar cursor en el foro de C/C++ en Foros del Web. Hola Estoy haciendo un programa a mero modo de experimento, y quisiera aprender a controlar el cursor en la consola en modo texto. Luego de ...
  #1 (permalink)  
Antiguo 17/06/2007, 10:56
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Pregunta controlar cursor

Hola

Estoy haciendo un programa a mero modo de experimento, y quisiera aprender a controlar el cursor en la consola en modo texto. Luego de investigar consegui esta funcion:

Código:
#include <windows.h>
void gotoxy( short x, short y ) {
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
COORD position = { x, y }; 

SetConsoleCursorPosition( hStdout, position );
}
Funciona, es lo que importa. Pero mi primer pregunta es si funcionaría, una vez compilado, en un sistema D.O.S, pues utiliza la libreria windows.h.. en caso negativo, existe una forma de hacerlo para que si funcione?

Y otra pregunta pequeña: como modificar, si es posible, el tamaño del cursor? yo recuerdo qe era posible, incluso alguna vez tuve un programa que me permitia configurar la altura y el tamaño (de ese rectangulito qe parpadea)

bueno, muchas gracias

exitos
  #2 (permalink)  
Antiguo 17/06/2007, 11:26
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: controlar cursor

Cita:
Iniciado por geq Ver Mensaje
HolaFunciona, es lo que importa. Pero mi primer pregunta es si funcionaría, una vez compilado, en un sistema D.O.S, pues utiliza la libreria windows.h.. en caso negativo, existe una forma de hacerlo para que si funcione?
Eso utiliza la API de Windows que no esta disponible en MS-DOS. Seguramente generes un ejecutable de 32 bits que no sea compatible con MS-DOS, veras el clasico mensaje: "This program cannot be run in DOS mode."

Cita:
Iniciado por geq Ver Mensaje
Y otra pregunta pequeña: como modificar, si es posible, el tamaño del cursor? yo recuerdo qe era posible, incluso alguna vez tuve un programa que me permitia configurar la altura y el tamaño (de ese rectangulito qe parpadea)
Investigalo bien pero sino me equivoco, para especificar la posicion podes usar este servicio:
http://www.ctyme.com/intr/rb-0087.htm

Idem, para cambiar el tamaño del cursor podes usar este servicio:
http://www.ctyme.com/intr/rb-0086.htm
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 17/06/2007, 14:39
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: controlar cursor

hola muchas gracias ^^

mm no pense en la posibilidad del mensaje this program cannot be run in DOS mode, pero si, me parece que tienes razon ahi

en cuanto a los links, te los agradezco, estube mirando, pero no logre hacer nada T.T seria mucha molestia pedir un ejemplo de ello?

gracias de nuevo
exitos
  #4 (permalink)  
Antiguo 17/06/2007, 14:44
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: controlar cursor

Cita:
Iniciado por geq Ver Mensaje
mm no pense en la posibilidad del mensaje this program cannot be run in DOS mode, pero si, me parece que tienes razon ahi
Es lo mas logico a menos que uses un compilador de 16 bits (algo para Windows 3.11 por ejemplo) que tampoco funcionaria al no ejecutarse bajo Windows.

Cita:
Iniciado por geq Ver Mensaje
en cuanto a los links, te los agradezco, estube mirando, pero no logre hacer nada T.T seria mucha molestia pedir un ejemplo de ello?
Tenes que usar assembly o inline assembly, es bastante simple en realidad. ¿Que queres hacer exactamente?
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 17/06/2007, 14:58
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: controlar cursor

hola de nuevo ^^
lo qe qiero hacer es simplemente mover el cursor en la consola para tomar o imprimir datos en una posicion diferente a la actual, no se si me explico.. seria como para dibujar (con caracteres, por supuesto) primero un fondo, y luego llevar el cursor a una posicion especifica para permitirle al usuario ingresar datos, como seria con el "LOCATE" del basic.. estoy usando dev-c++

gracias,
exitos
  #6 (permalink)  
Antiguo 17/06/2007, 15:06
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: controlar cursor

Cita:
Iniciado por geq Ver Mensaje
hola de nuevo ^^
lo qe qiero hacer es simplemente mover el cursor en la consola para tomar o imprimir datos en una posicion diferente a la actual, no se si me explico.. seria como para dibujar (con caracteres, por supuesto) primero un fondo, y luego llevar el cursor a una posicion especifica para permitirle al usuario ingresar datos, como seria con el "LOCATE" del basic.. estoy usando dev-c++
Si estas usando Dev-C++ vamos de nuevo entonces, ese IDE suele usar un port de gcc y genera codigo de 32/64 bits, para Windows y no para MS-DOS. Si lo que queres es un ejecutable que funcione en un MS-DOS puro (sin ningun Windows) entonces no te sirve mientras que si lo que queres es un programa de consola bajo Windows podes usar el codigo que mostraste al principio.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 17/06/2007, 15:13
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: controlar cursor

ah bueno ^^
bueno muchas gracias por todo
exitos
  #8 (permalink)  
Antiguo 17/06/2007, 15:14
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: controlar cursor

De nadas Siempre se confunde MS-DOS con consola.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:24.