• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

aMeScAS

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

8 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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...  :D

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  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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??  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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?  :hmm:

Edited:

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora