Jump to content

[C++/CLI] Dúvidas: Terminar uma aplicação / Redimensionar a janela (Resolvido)


aMeScAS
 Share

Recommended Posts

É possivel uma linha de codigo que termina a aplicaçao? Neste meu caso (CLI) o MS DOS? Por ex: Quando premida a tecla 'E' , o programa executava essa mesma linha de codigo, que fechava a janela. Se sim, poderiam me dizer qual o comando, e um pequeno exemplo...  ;)

Outra questão... acho que já vi algures algo a falar sobre redimensionamento da janela, isto é, com uma instruçao, definir o tamanho da janela. Por ex: Quero que a janela esteja 250x500 e com essa mesma linha era definida a largura e altura.

Link to comment
Share on other sites

É possivel uma linha de codigo que termina a aplicaçao? Neste meu caso (CLI) o MS DOS? Por ex: Quando premida a tecla 'E' , o programa executava essa mesma linha de codigo, que fechava a janela. Se sim, poderiam me dizer qual o comando, e um pequeno exemplo...  😄

A instrução

exit(0);

Outra questão... acho que já vi algures algo a falar sobre redimensionamento da janela, isto é, com uma instruçao, definir o tamanho da janela. Por ex: Quero que a janela esteja 250x500 e com essa mesma linha era definida a largura e altura.

Alterar as dimensões da consola de execução, experimenta isto:

[C++] Dúvida: Como alterar definiçoes da consola de execução?

Cumpr. bk@ero  ;)

Link to comment
Share on other sites

hm.... gostava de saber onde introduzo essa instrução. Eu tenho o menu nesse programa com um swith tou a faxer algo do tipo:

         case 7:
      exit(0);
      break;

Nao esta a funcionar... Sera que me podiam explicar melhor??  ;)

Link to comment
Share on other sites

Se fosse em C dizia que se calhar faltava fazer o #include <stdlib.h>, como estamos em C+ não sei se é igual... Mas penso que seja.

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Link to comment
Share on other sites

Ora entao, está aqui o codigo todo do meu programa té ao momento... Gostaria tambem que me dissessem se ta bom, ou algo k fariam para melhorar... opinioes.. ;)

#include "stdafx.h"
#include <windows.h>

using namespace System;

ref class Vector
{
public:
	String^ Nome;
	Byte Ano;
	Char Turma;
	array<Byte>^ Notas;
	array<Byte>^ y;
	array<Byte>^ pos_maior;
	Byte b;
	Vector(void)
	{
		Notas=gcnew array<Byte>(6);
		y=gcnew array<Byte>(6);
	}

	void Carregar(void)
	{
		Console::WriteLine("Introduza o Nome: ");
			Nome=Console::ReadLine();
		Console::WriteLine("Introduza o Ano: ");
			Ano=Byte::Parse(Console::ReadLine());
		Console::WriteLine("Introduza a Turma: ");
			Turma=Char::Parse(Console::ReadLine());
		Console::WriteLine("Introduza 6 notas: ");
		for (Byte i=0; i<6;i++)
	    	Notas[i]=Byte::Parse(Console::ReadLine());
		Console::Clear();
		Menu();

	}
	void Visualizar(void)
	{
		Console::WriteLine("O nome é: {0}",Nome);
		Console::WriteLine("A turma é: {0}",Turma);
		Console::WriteLine("O ano é: {0}",Ano);
		for (Byte i=0; i<6;i++)
		Console::WriteLine("As notas são: {0}",Notas[i]);
		Console::WriteLine(" ");
		Console::WriteLine("Para voltar para o menu carregue no (ENTER)");
		Console::ReadLine();
		Console::Clear();
		Menu();

	}
	void Menu(void)
	{
				Console::WriteLine(" ");
				Console::WriteLine("   Menu::");
				Console::WriteLine("         1-Carregar dados");
				Console::WriteLine("         2-Visualizar dados");
				Console::WriteLine("         3-Maior");
				Console::WriteLine("         4-Pesquisar");
				Console::WriteLine("         5-Ordenar");
				Console::WriteLine("         6-Credits");
				Console::WriteLine(" ");
				b=Byte::Parse(Console::ReadLine());
				Console::Clear();
				switch(b)
				{
				case 1:
						Carregar();
						break;
				case 2:
						Visualizar();
						break;
				case 3:
						Maior();
						break;
				case 4:
						Pesquisar();
						break;
				case 5:
						Ordenar();
						break;
				case 6:
						Credits();
						break;
				default:
					Console::WriteLine("Introduziu um número errado");
					Menu();
				}

	}
	int Ordenar()
	{
		Byte maior,pos_maior,j;

		for (Byte i=0; i<6;i++)
		{	
			maior=Notas[i];
			pos_maior=i;
			for (j=i+1; j<=5; j++)
			{
				if(Notas[j]>maior)
				{
				maior=Notas[j];
				pos_maior=j;
				}
			}
		Notas[pos_maior]=Notas[i];
		Notas[i]=maior;
		}				
		for (Byte i=0; i<6;i++)
			Console::WriteLine(Notas[i]);
		Console::WriteLine(" ");
		Console::WriteLine("Para voltar para o menu carregue no (ENTER)");
		Console::ReadLine();
		Console::Clear();				
		Menu();
		return -1;
	}

	int Maior()
	{
		Byte maior;
		maior=Notas[0];
		for (Byte i=0; i<6; i++)
		{
			if (Notas[i]>maior)
				maior=Notas[i];
		}
		Console::WriteLine("A maior nota é {0}",maior);
		Console::WriteLine(" ");
		Console::WriteLine("Para voltar para o menu carregue no (ENTER)");
		Console::ReadLine();
		Console::Clear();
		Menu();
		return -1;
	}

	void Dimensoes(void)
	{
			HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
			SMALL_RECT sr;
			COORD consoleSize;
			consoleSize.X = 50; consoleSize.Y = 25;

				sr.Top=sr.Left=0;
				sr.Right=49; sr.Bottom=24;

				SetConsoleWindowInfo(console, TRUE, &sr);
				SetConsoleScreenBufferSize(console, consoleSize);
	}
	int Pesquisar(void)
	{
		Byte x;
		Console::WriteLine("Introduza o valor a pesquisar:");
		x=Byte::Parse(Console::ReadLine());
		bool flag=true;
		for (Byte i=0; i<6 && flag; i++)
		{
			if (Notas[i]==x)
			flag=false;
		}
			if (flag) Console::WriteLine("O valor {0} nao existe",x);
			else Console::WriteLine("O valor {0} existe",x);
		Console::WriteLine(" ");
		Console::WriteLine("Para voltar para o menu carregue no (ENTER)");
		Console::ReadLine();
		Console::Clear();
		Menu();
		return -1;
	}
	void Credits(void)
	{
		Console::WriteLine("                Made by: ");
		Console::WriteLine("");
		Console::WriteLine("      ..:: AragorN & aMêScAs :: ..");
		Console::WriteLine(" ");
		Console::WriteLine("Para voltar para o menu carregue no (ENTER)");
		Console::ReadLine();
		Console::Clear();
		Menu();
	}
};

		int main (array<System::String ^> ^args)
		{
			Console::WriteLine(" ");
			Console::WriteLine("   ..:: Bem-vindo a este simples programa ::..     ");
			Console::WriteLine(" ");
			Vector^ x=gcnew Vector();
			x->Dimensoes();
			x->Menu();
			x->Carregar();
			x->Visualizar();
			x->Maior();
			x->Pesquisar();
			x->Ordenar();
		}

Só lhe falta ali é a execuçao "Exit", que nao sei como fazer... :dontgetit:

Link to comment
Share on other sites

Estranho que não tenha funcionado como disseste antes. Copiei o teu código, acrescentei-lhe o

		case 7:
		exit(0);
		break;

e funcionou bem, ou seja, quando escrevi 7, saiu do programa. Estás a usar o VS 2005?

Desaparecido.

Link to comment
Share on other sites

agora exprimentei esse codigo e funcionou... mas ele ao sair vai apenas sair do "x->Menu();" ... Se carregar 7, ele "limpa" ecrã e carregando enter ele faz a instruçao seguinte.. (que neste caso é o "x->Carregar();" )

int main (array<System::String ^> ^args)
		{
			Console::WriteLine(" ");
			Console::WriteLine("   ..:: Bem-vindo a este simples programa ::..     ");
			Console::WriteLine(" ");
			Vector^ x=gcnew Vector();
			x->Dimensoes();
			x->Menu();
			x->Carregar();
			x->Visualizar();
			x->Maior();
			x->Pesquisar();
			x->Ordenar();
		}

Sim estou a usar VS 2005.... E agora que preciso mudar aqui?  ?

Edited:

Bem nao sei o que fiz, mas já esta a funcionar...  :P:)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.