SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: ElNapster en Miércoles 8 de Junio de 2005, 16:51

Título: Ayuda Con Visual C++
Publicado por: ElNapster en Miércoles 8 de Junio de 2005, 16:51
Que tal a todos, estoy trabajando en visual c++ y tengo que hacer que en mi programa haya una pausa asi como se usa en c++ el Sleep ( ); pero aqui en visual no me deja en que libreria esta o cual es el comando que hace que el programa tenga una pausa, y tambien no puedo centrar mis textos ya que no me permite poner el gotoxy (  ,  ) , cual sera el comando para poder centrar o en que librerias estara, sera que me pueden ayudar en ese problemita se los estare agradeciendo muchisisisimo.

Gracias.... :smartass:
Título: Re: Ayuda Con Visual C++
Publicado por: shakka en Miércoles 8 de Junio de 2005, 17:16
Revisa este post:
http://foros.solocodigo.com/index.php?show...=13178&hl=pausa (http://foros.solocodigo.com/index.php?showtopic=13178&hl=pausa)

Citar
Output to a console is essentially controlled by the console screen buffer's current settings, and each position in the buffer is addressable with a COORD structure. This code uses SetConsoleCursorPosition() to move the current output location to row 11, column 32:

#include <windows.h>
#include <stdio.h>
 
int main ( int argc, char** argv )
{
HANDLE hConsole = GetStdHandle ( STD_OUTPUT_HANDLE );

    if ( INVALID_HANDLE_VALUE != hConsole )
        {
        COORD pos = {32, 11};
        SetConsoleCursorPosition ( hConsole, pos );
        printf ( "Hello World!\n" );
        }
 
    return 0;
}
Also, code that outputs to cout will respect the buffer settings as well.
[CODE]

Fuente:
The Code Project Visual C++ Forum FAQ
By Michael Dunn
http://www.codeproject.com/cpp/cppforumfaq.asp#cons_gotoxy (http://www.codeproject.com/cpp/cppforumfaq.asp#cons_gotoxy)
Título: Re: Ayuda Con Visual C++
Publicado por: ElNapster en Miércoles 8 de Junio de 2005, 17:46
Oye brother que significa ese codigo que me enviastes porque no hace nada , y sera que te molesto esque casi no muchol e entiendo al ingles...

Gracias por tu ayuda

 :hola:
Título: Re: Ayuda Con Visual C++
Publicado por: pitukilloloco en Miércoles 8 de Junio de 2005, 17:54
En esta liga puse un sencillo ejemplo de como manejar el ratón en modo consola. Ahí está el uso de la función sleep y de cómo poner un letrero en alguna parte de la consola. Espero te sirva
http://foro.elhacker.net/index.php/topic,68516.0.html (http://foro.elhacker.net/index.php/topic,68516.0.html)
Título: Re: Ayuda Con Visual C++
Publicado por: ElNapster en Miércoles 8 de Junio de 2005, 18:43
Oye gracias por tu ayuda, pero ahora mi pregunta es: que para cada linea que yo quiera centrar tengo que poner todo esto :

HANDLE hConsole = GetStdHandle ( STD_OUTPUT_HANDLE );

if ( INVALID_HANDLE_VALUE != hConsole )
{
COORD pos = {32, 11};
SetConsoleCursorPosition ( hConsole, pos );
cout<< "Solo una LInea \n";



oviamente que las variables van a hacer diferentes ? o estoy mal, sera que me pueden ayudar , porque como veran soy un novato en esto del visual c++,

La cuestion es que yo quiero centrar varias lineas de texto con diferentes coordenadas.

Gracias por su Ayuda

 :D
Título: Re: Ayuda Con Visual C++
Publicado por: carmamezo en Miércoles 8 de Junio de 2005, 19:35
Hola,
 el Handle hconsole sólo lo tienes que sacar la primera vez, luego lo puedes usar todas las veces que quieras, por tanto esa parte sólo debe ejecutarse al principio:
Código: Text
  1.  
  2. HANDLE hConsole = GetStdHandle ( STD_OUTPUT_HANDLE );
  3. if ( INVALID_HANDLE_VALUE == hConsole )
  4. {
  5. cout&#60;&#60;&#34;ERROR!!&#092;nPulsa &#60;enter&#62; para continuar&#34;;
  6. getchar();
  7. return(-1);
  8. }
  9. ....//ahora ya tienes hConsole, no hace falta hacer todo lo anterior
  10.  
  11.  
Lo que si tendrás que reescribir es
Código: Text
  1.  
  2. COORD pos = {32, 11};
  3. SetConsoleCursorPosition ( hConsole, pos );
  4. cout&#60;&#60;&#34;solo una linea&#34;;
  5.  
  6.  
Tantas veces como necesites...
Un saludo.  :lightsabre:
Título: Re: Ayuda Con Visual C++
Publicado por: shakka en Miércoles 8 de Junio de 2005, 20:16
//O te haces una funcion para eso

#include <windows.h>
#include <iostream.h>

HANDLE hHandle=GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord;

void Gotoxy(int x,int y);

main()
{
  Gotoxy(10,10); cout<<"Solo una LInea\n";
 
return 0;
}

void Gotoxy(int x,int y)
{
 coord.X=x;
 coord.Y=y;
 SetConsoleCursorPosition (hHandle,coord);
}
Título: Re: Ayuda Con Visual C++
Publicado por: ElNapster en Miércoles 8 de Junio de 2005, 20:19
Gracias amigo, solo quiciera hacer otra preguntita como limpio pantalla en visual c ++ ?

Un saludo a todos,,, y gracias por ayudarme..... :hola:

 :smartass:
Título: Re: Ayuda Con Visual C++
Publicado por: shakka en Miércoles 8 de Junio de 2005, 20:35
usa:
system("cls");

y en la cuanto a la funcion para posicionar el cursor mejor usa estas variables locales a la funcion y no globales;

Citar
HANDLE hHandle=GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord;

Código: Text
  1.  
  2. void Gotoxy(int x,int y)
  3. {
  4. HANDLE hHandle=GetStdHandle(STD_OUTPUT_HANDLE);
  5. COORD coord;
  6.  
  7. coord.X=x;
  8. coord.Y=y;
  9. SetConsoleCursorPosition (hHandle,coord);
  10. }
  11.  
Título: Re: Ayuda Con Visual C++
Publicado por: ElNapster en Miércoles 8 de Junio de 2005, 21:52
Gracias Brother , me haz ayudado en todo te lo agradezco mucho........

 :comp:
Título: Re: Ayuda Con Visual C++
Publicado por: ElNapster en Miércoles 8 de Junio de 2005, 23:56
Oye tengo problemas con esto de lo del centrar textos ya que lo he hecho tal como me lo han dicho ustedes pero no me funciona , sera que me puedes ayudar poniendo el codigo tal como va para poder centrar por lo minimo 2 lineas asi talvez me guio un poquito mas , porque por el momento sigo igual solo puedo centrar una linea ,, se los agradeceria un monton,,,,

Gracias,,,

El que percevera alganza :smartass:

 :comp:
Título: Re: Ayuda Con Visual C++
Publicado por: KrǾNoS en Lunes 27 de Junio de 2005, 07:57
Ok, intenta con este programa de ejemplo:


#include <iostream.h>
#include <windows.h>

//Funcion para dar color al Texto
void Color(WORD wColor)
{
HANDLE hHandle=GetStdHandle(STD_OUTPUT_HANDLE);
 SetConsoleTextAttribute(hHandle,wColor);
}

//Funciòn que mueve un texto a una posiciòn x,y de la pantalla
void Gotoxy(int x,int y)
{
HANDLE hHandle=GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord;

coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(hHandle,coord);
}

//Programa principal
void main()
{  

  Color(2);  
  Gotoxy(10,5);
  cout<<"Titulo de prueba"<<endl;
   
  Color(5);
  Gotoxy(15,10);
  cout<<"Otra linea con el gotoxy"<<endl;

}
//--------------------------------------------------------------

Para que te funcione la funciòn Gotoxy(x,y) utilizando la instrucciòn cout deberàs agregar al final de cada lìnea la instrucciòn endl, como se describe en el programa de arriba, es decir de esta forma... cout<<"Otra linea con el gotoxy"<<endl;

Espero te haya sido de utilidad.

"Encuentra una verdad que sea verdadera para tí… la idea por la que estes dispuesto a vivir o morir, y encontraras el significado de tu existencia"....Kierkegaard