Jump to content

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


Recommended Posts

Posted

É 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.

Posted

É 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  😉

Posted

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??  😉

Posted

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"

Posted

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:

Posted

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.

Posted

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...  😛🙂

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
×
×
  • 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.