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

c++ rozmiar okna

Object Storage Arubacloud
+1 głos
4,173 wizyt
pytanie zadane 22 czerwca 2016 w C i C++ przez igor1988bb Użytkownik (800 p.)
Witam wszystkich! Mam do was pytanie na które z pewnością uzyskam  odpowiedź na problem z którym nie mogę się uporać od pewnego czasu.Otóż chciałbym napisać program który wykorzystuje właściwości okna, czyli szerokość i wysokość ale nie mogę znaleźć sposobu by dojść do tych informcji. Podeśle mi ktoś kod albo jakieś rzetelne informacje jak do tego dojść? z góry dziękuję za odpowiedź i pozdrawiam
komentarz 22 czerwca 2016 przez obl Maniak (51,280 p.)

Odpowiedź zależy od tego w czym piszesz ten swój program, bo inaczej sprawa wygląda w C++ WinApi a inaczej np w Qt Creatorze.

komentarz 22 czerwca 2016 przez igor1988bb Użytkownik (800 p.)
Chciałbym stworzyć okno konsolowe w WinApi o określonych atrybutach

2 odpowiedzi

+2 głosów
odpowiedź 22 czerwca 2016 przez obl Maniak (51,280 p.)
wybrane 22 czerwca 2016 przez igor1988bb
 
Najlepsza

Jak w konsoli to sprawa jest nieco zagmatwana, przykładowy kod wygląda następująco:

#include <iostream>
#include <windows.h>

int main(){
	char c = 0;

	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); // potrzebujesz uchwytu
	SMALL_RECT sr;

    sr.Left = 0;
    sr.Top = 0;
    sr.Right = 49;
    sr.Bottom = 49;
    SetConsoleWindowInfo(handle,true,&sr); // ustawiasz szerokość okna na 50 x 50 (w szerokościach i wysokościach znaku pojedynczego a nie w pikselach)
		
	CONSOLE_SCREEN_BUFFER_INFO sbi; // struktura opisująca okno

	GetConsoleScreenBufferInfo(handle, &sbi); // pobieranie informacji o oknie

	std::cout<<"szerokosc: "<<sbi.srWindow.Right - sbi.srWindow.Left + 1<<" wysokosc: "<<sbi.srWindow.Bottom - sbi.srWindow.Top + 1; // wyświetlanie wysokości i szerokości okna

	std::cin>>c;

	return 1;
}

Tutaj szerokość jest liczona w szerokości pojedynczego znaku. A wysokość w wysokościach pojedynczego znaku.

Edit:

W sumie można zrobić to tak:

HWND hwnd = GetConsoleWindow();

RECT r;
GetWindowRect(hWnd, &r);

I dalej już jak Szymon Siarkiewicz napisał, wtedy będziesz miał rozmiar okna w px.

komentarz 22 czerwca 2016 przez igor1988bb Użytkownik (800 p.)
Dzięki wielkie :) To pozostaje mi jeszcze tylko odkryć jak wydobyć rozmiar w pełnym ekranie :)
+1 głos
odpowiedź 22 czerwca 2016 przez niezalogowany
komentarz 22 czerwca 2016 przez igor1988bb Użytkownik (800 p.)
Będę wdzięczny za podesłanie przykładu  działającego kodu :)
komentarz 22 czerwca 2016 przez niezalogowany
RECT rect;
GetWindowRect(hwnd, &rect)) // bez error checka, powinieneś sprawdzić czy ta funkcja zwróci true

int width = rect.right - rect.left;
int height = rect.bottom - rect.top;

komentarz 22 czerwca 2016 przez igor1988bb Użytkownik (800 p.)
Dzięki wielkie o to mi wałaśnie chodziło. pozostaje mi tylko znaleść sposób na wydobycie informacji w trzybie pełno ekranowym

Podobne pytania

+1 głos
2 odpowiedzi 2,527 wizyt
pytanie zadane 7 czerwca 2016 w C i C++ przez Regolin542 Użytkownik (990 p.)
0 głosów
2 odpowiedzi 356 wizyt
–1 głos
2 odpowiedzi 678 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...