|
View Full Version : Funções esquecidas...
Felipe - Lykan 04-18-2006, 06:34 PM Gostaria de saber se é possÃvel eu usar a função clrscr(); do Turbo C++ em
Visual C++. Se não for possÃvel, gostaria de saber como podereir conseguir o
mesmo efeito, que é limpar a tela. Sou iniciante e gostaria muito de saber.
Obrigado.
--
"O simples fato do vôo de uma borboleta, pode gerar um tufão do outro lado
do mundo, levando tudo ao CAOS!"
Frederico Pissarra 04-19-2006, 01:03 AM "Felipe - Lykan" <FelipeLykan@discussions.microsoft.com> wrote in message
news:3E27DC83-C3AC-4525-8A29-061484F22509@microsoft.com...
> Gostaria de saber se é possível eu usar a função clrscr(); do Turbo C++ em
> Visual C++. Se não for possível, gostaria de saber como podereir conseguir
> o
> mesmo efeito, que é limpar a tela. Sou iniciante e gostaria muito de
> saber.
> Obrigado.
> --
> "O simples fato do vôo de uma borboleta, pode gerar um tufão do outro lado
> do mundo, levando tudo ao CAOS!"
Não, não é... procure pelas funções que lidam com Console no MSDN que
acompanha o seu Visual Studio
[]s
Fred
Felipe - Lykan 04-19-2006, 01:55 PM Frederico, achei um jeito que vc consegue o mesmo efeito. Segue abaixo o
trecho do código juntamente com um exemplo...
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define clrscr system("CLS")
void main(void){
printf("\nTeste de impressão e limpar a tela depois da mesma");
clrscr; //Note que deve ficar sem os parenteses ( )
printf("\nTeste bem sucedido");
getch();
}
Agora tente tirar o clrscr do código e execute novamente, lembrando que vc
deve criar um projeto para Win32 Console Application...
C não funcionar poste novamente
FELIPE
--
"O simples fato do vôo de uma borboleta, pode gerar um tufão do outro lado
do mundo, levando tudo ao CAOS!"
"Frederico Pissarra" escreveu:
>
> "Felipe - Lykan" <FelipeLykan@discussions.microsoft.com> wrote in message
> news:3E27DC83-C3AC-4525-8A29-061484F22509@microsoft.com...
> > Gostaria de saber se é possÃvel eu usar a função clrscr(); do Turbo C++ em
> > Visual C++. Se não for possÃvel, gostaria de saber como podereir conseguir
> > o
> > mesmo efeito, que é limpar a tela. Sou iniciante e gostaria muito de
> > saber.
> > Obrigado.
> > --
> > "O simples fato do vôo de uma borboleta, pode gerar um tufão do outro lado
> > do mundo, levando tudo ao CAOS!"
>
> Não, não é... procure pelas funções que lidam com Console no MSDN que
> acompanha o seu Visual Studio
>
> []s
> Fred
>
>
>
Frederico Pissarra 04-20-2006, 06:48 AM "Felipe - Lykan" <FelipeLykan@discussions.microsoft.com> wrote in message
news:69C275B0-A475-4ED4-A1B6-B5DE9B8C8217@microsoft.com...
> Frederico, achei um jeito que vc consegue o mesmo efeito. Segue abaixo o
> trecho do código juntamente com um exemplo...
>
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <conio.h>
>
> #define clrscr system("CLS")
>
> void main(void){
>
> printf("\nTeste de impressão e limpar a tela depois da mesma");
>
> clrscr; //Note que deve ficar sem os parenteses ( )
>
> printf("\nTeste bem sucedido");
>
> getch();
>
>
> }
>
>
> Agora tente tirar o clrscr do código e execute novamente, lembrando que vc
> deve criar um projeto para Win32 Console Application...
>
> C não funcionar poste novamente
>
Felipe....
A chamada a system() é uma chamada ao CMD.EXE (uma nova instância de CMD.EXE
é carregada)... isso é MUITO lento e não resolve o problema... Sugiro mesmo
que você dê uma olhada nos códigos de conio do C++ Builder (\Program
Files\Borland\CBuilder6\Sources\rtl\Sources\conio ou algo assim).
O q c fez ai em cima pode até mesmo apagar a tela, mas e as antigas chamadas
a gotoxy()? e os atributos de texto?
[]s
Fred
Felipe - Lykan 04-20-2006, 12:13 PM Quanto as funções que vc mostra caro Frederico, existe algumas outras funções
que substituem o gotoxy();.. Também, quando me refiro a #define clrscr
system("CLS"), realmente estou chamando a função CLS do cmd.exe, porém, ele
não abre outra instância do cmd.
FELIPE
--
"O simples fato do vôo de uma borboleta, pode gerar um tufão do outro lado
do mundo, levando tudo ao CAOS!"
"Frederico Pissarra" escreveu:
>
> "Felipe - Lykan" <FelipeLykan@discussions.microsoft.com> wrote in message
> news:69C275B0-A475-4ED4-A1B6-B5DE9B8C8217@microsoft.com...
> > Frederico, achei um jeito que vc consegue o mesmo efeito. Segue abaixo o
> > trecho do código juntamente com um exemplo...
> >
> >
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <conio.h>
> >
> > #define clrscr system("CLS")
> >
> > void main(void){
> >
> > printf("\nTeste de impressão e limpar a tela depois da mesma");
> >
> > clrscr; //Note que deve ficar sem os parenteses ( )
> >
> > printf("\nTeste bem sucedido");
> >
> > getch();
> >
> >
> > }
> >
> >
> > Agora tente tirar o clrscr do código e execute novamente, lembrando que vc
> > deve criar um projeto para Win32 Console Application...
> >
> > C não funcionar poste novamente
> >
>
> Felipe....
>
> A chamada a system() é uma chamada ao CMD.EXE (uma nova instância de CMD.EXE
> é carregada)... isso é MUITO lento e não resolve o problema... Sugiro mesmo
> que você dê uma olhada nos códigos de conio do C++ Builder (\Program
> Files\Borland\CBuilder6\Sources\rtl\Sources\conio ou algo assim).
>
> O q c fez ai em cima pode até mesmo apagar a tela, mas e as antigas chamadas
> a gotoxy()? e os atributos de texto?
>
> []s
> Fred
>
>
>
Daniel Quadros 04-25-2006, 01:08 PM Felipe,
O Windows 32 bits possui uma riqueza imensa de funções para manipular
consoles. Ao contrário do DOS onde o console era a própria tela fÃsica,
manipuladada através do BIOS ou diretamente por acesso ao hardware, no Win32
é possÃvel criar vários consoles e fazer coisas incrÃveis com ele (vide
http://taat.fi/tmdc/).
A documentação das funções de console está em
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/using_the_console.asp
Adaptando o código da documentação para fazer um programa que apaga a tela
(não se assuste com a quantidade de linhas!):
#include <windows.h>
void main(void)
{
HANDLE hConsole;
COORD coordScreen = { 0, 0 };
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;
// Obtem o handle para a saida padrão
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
if (hConsole == INVALID_HANDLE_VALUE)
return;
// Descobre o tamanho da tela
if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
return;
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
// Preenche a tela com espaços no atributo atual
if( !FillConsoleOutputCharacter( hConsole, (TCHAR) ' ',
dwConSize, coordScreen, &cCharsWritten ))
return;
if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
return;
if( !FillConsoleOutputAttribute( hConsole, csbi.wAttributes,
dwConSize, coordScreen, &cCharsWritten ))
return;
// Coloca o cursor no alto da tela
SetConsoleCursorPosition( hConsole, coordScreen );
}
Você encontra uma biblioteca completa def unções para acesso ao console
(txtfx) em http://sol.gfxile.net/code.html.
Daniel Quadros
http://dqsoft.blogspot.com/
"Felipe - Lykan" escreveu:
> Gostaria de saber se é possÃvel eu usar a função clrscr(); do Turbo C++ em
> Visual C++. Se não for possÃvel, gostaria de saber como podereir conseguir o
> mesmo efeito, que é limpar a tela. Sou iniciante e gostaria muito de saber.
> Obrigado.
> --
Felipe - Lykan 04-26-2006, 12:12 PM Muito obrigado cara. Gostei muito do seu exemplo e vou começar a dar uma
olhada mais profunda nessa biblioteca. Falow
--
"O simples fato do vôo de uma borboleta, pode gerar um tufão do outro lado
do mundo, levando tudo ao CAOS!" - (Teoria do Caos)
FELIPE - MaStEr 0f Ch@os.
"Daniel Quadros" escreveu:
> Felipe,
>
> O Windows 32 bits possui uma riqueza imensa de funções para manipular
> consoles. Ao contrário do DOS onde o console era a própria tela fÃsica,
> manipuladada através do BIOS ou diretamente por acesso ao hardware, no Win32
> é possÃvel criar vários consoles e fazer coisas incrÃveis com ele (vide
> http://taat.fi/tmdc/).
>
> A documentação das funções de console está em
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/using_the_console.asp
>
> Adaptando o código da documentação para fazer um programa que apaga a tela
> (não se assuste com a quantidade de linhas!):
>
> #include <windows.h>
>
> void main(void)
> {
> HANDLE hConsole;
> COORD coordScreen = { 0, 0 };
> DWORD cCharsWritten;
> CONSOLE_SCREEN_BUFFER_INFO csbi;
> DWORD dwConSize;
>
> // Obtem o handle para a saida padrão
> hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
> if (hConsole == INVALID_HANDLE_VALUE)
> return;
>
> // Descobre o tamanho da tela
> if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
> return;
> dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
>
> // Preenche a tela com espaços no atributo atual
> if( !FillConsoleOutputCharacter( hConsole, (TCHAR) ' ',
> dwConSize, coordScreen, &cCharsWritten ))
> return;
> if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
> return;
> if( !FillConsoleOutputAttribute( hConsole, csbi.wAttributes,
> dwConSize, coordScreen, &cCharsWritten ))
> return;
>
> // Coloca o cursor no alto da tela
> SetConsoleCursorPosition( hConsole, coordScreen );
> }
>
> Você encontra uma biblioteca completa def unções para acesso ao console
> (txtfx) em http://sol.gfxile.net/code.html.
>
> Daniel Quadros
> http://dqsoft.blogspot.com/
>
> "Felipe - Lykan" escreveu:
>
> > Gostaria de saber se é possÃvel eu usar a função clrscr(); do Turbo C++ em
> > Visual C++. Se não for possÃvel, gostaria de saber como podereir conseguir o
> > mesmo efeito, que é limpar a tela. Sou iniciante e gostaria muito de saber.
> > Obrigado.
> > --
>
|
|
|