• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed stała wielkość okna konsoli C++ (windows)

Object Storage Arubacloud
–1 głos
1,204 wizyt
pytanie zadane 1 września 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
zamknięte 2 września 2017 przez Jakub 0
Hej, dodam na start że umiem ustawić domyślną wielkość okna konsoli przy pomocy windows.h . Czy jest jednak możliwość zablokowania jej zmiany ,(czyli użytkownik nie ma możliwości maksymalizacji i ogólnie zmiany rozmiaru okna ) ? Będę  bardzo wdzięczny za odpowiedź bo potrzebuje tej opcji do nowego projektu :)
komentarz zamknięcia: Temat wyczerpany

1 odpowiedź

+2 głosów
odpowiedź 1 września 2017 przez unknown Nałogowiec (39,560 p.)
wybrane 1 września 2017 przez Jakub 0
 
Najlepsza

Minuta w google:

SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE)&~WS_SIZEBOX);

 

komentarz 1 września 2017 przez Jakub 0 Pasjonat (23,120 p.)

ja nic nie znalazłem takiego... funkcja mi jednak nie działa i powoduje błąd ...

Użyłem więc funkcji zgodnej z win 64 i 32b . Wygląda ona tak :

LONG WINAPI SetWindowLong( HWND hWnd, int nIndex, LONG dwNewLong );

Jednak nic nie zmienia w programie (miałem na myśli zablokowanie możliwości zmiany rozmiaru okna) .Dzięki jednak za odp . Chociaż downvote pewnie też dałeś :/

1
komentarz 1 września 2017 przez unknown Nałogowiec (39,560 p.)

funkcja mi jednak nie działa i powoduje błąd

Błąd kompilacji czy po prostu nie blokuje zmiany rozmiaru okna? 

komentarz 1 września 2017 przez Jakub 0 Pasjonat (23,120 p.)
ta którą mi podałeś powoduje że program się nie kompiluje a druga po prostu nie działa
1
komentarz 1 września 2017 przez unknown Nałogowiec (39,560 p.)
Pokaż kod
komentarz 1 września 2017 przez Jakub 0 Pasjonat (23,120 p.)

na pewno chcesz to wiedzieć ... (tak w skrócie kod przedstawia prostą tabelkę symulującą exel)

 

*wywołanie funkcji jest w main na początku 

#include "stdafx.h" //tu sa wszystkie biblioteki windows.h tez...

using namespace std;

void HideCursor()
{
	::HANDLE hConsoleOut = ::GetStdHandle(STD_OUTPUT_HANDLE);
	::CONSOLE_CURSOR_INFO hCCI;
	::GetConsoleCursorInfo(hConsoleOut, &hCCI);
	hCCI.bVisible = FALSE;
	::SetConsoleCursorInfo(hConsoleOut, &hCCI);
}

void clean(int x, int y)
{
	COORD cord;
	cord.X = x;
	cord.Y = y;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), cord);
}

const int s = 10;

void changeValue(int x, int y, string arr[10][10]) {
	cout << endl << "value: ";
	string bufor; cin >> bufor;
	arr[x][y] = bufor;
	system("cls");
	//clean(0, 0);
	
}

void tabels(int x, int y, string arr[10][10]) {
	HANDLE hOut;
	hOut = GetStdHandle(STD_OUTPUT_HANDLE);
	HideCursor();

	for (int i = 0; i < s; i++) {
		for (int j = 0; j < s; j++) {
			if ((i == x) && (j == y)) SetConsoleTextAttribute(hOut, BACKGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
			cout << arr[i][j];
			SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
			cout << " ";
		}
		cout << endl;
	}
}

void arrCreateValue(string arr[10][10]) {
	for (int i = 0; i < s; i++) {
		for (int j = 0; j < s; j++) {
			arr[i][j] = "empity";
		}
	}
}

int main()
{
	LONG WINAPI SetWindowLong(HWND hWnd, int nIndex, LONG dwNewLong); //tu zablokowanie zmainy wielksci okna 

	int x = 0, y = 0;
	string arr[10][10];
	arrCreateValue(arr);

	HideCursor();

	while (true) {
		tabels(x, y, arr);

		char c = _getch();

		switch (c) {
		case 'w': {
			x--;
			break;
		case 's': {
			x++;
			break;
		}
		case 'a': {
			y--;
			break;
		}
		case 'd': {
			y++;
			break;
		}
		case 'q': {
			changeValue(x,y,arr);
			break;
		}
		}
		}

		if (x < 0) x = 0;
		if (y < 0) y = 0;
		if (x > 9) x = 9;
		if (y > 9) y = 9;

		clean(0, 0);
	}
	return 0;
}

 

1
komentarz 1 września 2017 przez unknown Nałogowiec (39,560 p.)
LONG WINAPI SetWindowLong(HWND hWnd, int nIndex, LONG dwNewLong); //tu zablokowanie zmainy wielksci okna

Deklarujesz funkcję w innej funkcji (co jest nielegalne). Masz ją wywołać z odpowiednimi argumentami np. tak:

SetWindowLong(GetConsoleWindow(), GWL_STYLE, GetWindowLong(GetConsoleWindow(), GWL_STYLE)&~WS_SIZEBOX);

 

komentarz 1 września 2017 przez Jakub 0 Pasjonat (23,120 p.)
dzięki wielkie ,teraz działa .Nie wiem jaki głupi jestem że wywołałem funkcje bez odpowiednich argumentów .Wreszcie dostałem odpowiedź na pytanie (kosztem kilku downvote)

A czy da się jeszcze zrobić tak by pozbyć się możliwości zjechania na dół (nie wiem jak to nazwać -> element po prawej stronie okna ) . Wiele mnie to kosztuje nerwów ,szukania w necie ,zadawanie pytań ale chce uzyskać w pełni zablokowanie okno konsoli (bez jakich kolwiek możliwości edycji ) - czysta czerń ... :)
1
komentarz 1 września 2017 przez unknown Nałogowiec (39,560 p.)
ShowScrollBar(GetConsoleWindow(), SB_BOTH, FALSE);

 

Podobne pytania

0 głosów
2 odpowiedzi 1,527 wizyt
0 głosów
2 odpowiedzi 1,057 wizyt
pytanie zadane 24 marca 2018 w C i C++ przez Nimplex Początkujący (460 p.)
0 głosów
1 odpowiedź 210 wizyt
pytanie zadane 7 stycznia 2018 w C i C++ przez adambdx7 Początkujący (280 p.)

92,589 zapytań

141,439 odpowiedzi

319,697 komentarzy

61,974 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...