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

Okienka, przyciski, menu w programie.

42 Warsaw Coding Academy
+1 głos
174 wizyt
pytanie zadane 28 października 2016 w C i C++ przez chacken Użytkownik (820 p.)
Zdecydowałem się na stworzenie własnego gui, bez żadnych bibliotek, gdyż chciałbym się nauczyć dzięki temu wielu rzeczy.
Jednak naprawdę brakuje mi rozwiązań, po skończeniu książki z cpp znam zasady działania cpp. Gdy szukam po necie nie umiem znaleźć nic konkretnego, gdyż w większości przypadków odpowiedzi są jaką gotową biblioteke wybrać.
Pytanie brzmi.... jak zamienić czarne okienko konsolowe na np. normalne okienko windowsowe?
Następny problem... jak już uda mi się ogarnąć to okno windowsowe, jak stworzyć przyciski?
W jaki sposób manipulować nimi na tym okienku? Zamierzam przysicki narysować bo chyba inaczej nie da rady. Potem stworzyć klase wirtualną przysicki, następnie same przyciski i do każego dodać własny obrazek.
Tylko jak to pogodzić na ekranie? W jaki sposób można umieścić jakiś obiekt np. na środku tego okienka, inny po lewej np. a trzeci gdzieś pomiędzy nimi?

A może i tak żeby stworzyć wszystko samemu trzeba się odwołać do jakichś prymitywnych bibliotek? Wiele pytań ale myślę że zamysł rozumiecie :)

Jak widać jestem ciemny w tych sprawach ale od czegoś trzeba zacząć, liczę na waszą pomoc :)
Z góry dziękuję!!!! :)

2 odpowiedzi

+1 głos
odpowiedź 28 października 2016 przez egoon Obywatel (1,360 p.)

Witam,

problem w tym, że odpowiedzi które znajdujesz, o gotowych bibliotekach, są jak najbardziej sensowne. Bez bibliotek nic nie zrobisz, a do napisania własnych trzeba chyba coś więcej niż książka z C++...

Owszem, można samemu wszystko zbudować, ale to wymaga naprawdę sporej wiedzy. Zakładam, że piszesz w Windows, więc zobacz strony MSDN, tam jest naprawdę BARDZO dużo materiału. Tu jest np. o tworzeniu okna:

https://msdn.microsoft.com/library/windows/desktop/ms632679

Na mój mały rozumek, zanim zaczniesz wyważać otwarte drzwi (lub robić swoje, lepsze), zobacz jak są zbudowane już istniejące, poznaj ich działanie. Mają mocne strony i słabe, wypróbuj!

A przyciski nie muszą być rysowane osobno, są do tego funkcje. Przykład poniżej pochodzi z małego kalkulatora, który kiedyś napisałem. Jest mało finezyjny, niedopracowany, ale działał. Kalkulator działał, przykład to tylko fragment i sam nic nie zrobi, jest częścią większej całości - tylko dla zobrazowania.

HWND tab[10] = { p1, p2, p3, p4, p5, p6, p7, p8, p9 };
	HWND *wsk;
	wsk = tab;
	LPWSTR l[10] = { L"1", L"2", L"3", L"4", L"5", L"6", L"7", L"8", L"9" };

	HWND tab_dz[6] = { plus, minus, mnoz, dziel, pierwiastek, potega };
	HWND *wsk_dz;
	wsk_dz = tab_dz;
	LPWSTR dz[6] = { L"+", L"^", L"-", L"\u221a", L"*", L"/"};
	
	//do cyfr
	for (int row = 0; row < 3; row++)
	{
		for (int col = 0; col < 3; col++)
		{
			int num = (row * 3) + col;//punkt przecięcia wiersz/kolumna, cyfra po row* zależy od ilości kolumn
			*wsk = CreateWindowEx(
				WS_EX_WINDOWEDGE,
				przycisk,
				l[num],
				WS_CHILD | WS_VISIBLE,
				10 + (col * 55),//położenie w poziomie
				150 + (row * 35),//położenie w pionie
				50, 30,//wymiary 
				hOkno, HMENU(num), hIn, NULL
				);
			wsk++;
			
			zmiana_fontu(hOkno, num);
		}
	}

Nie chcę Cię zniechęcać, wręcz przeciwnie - sam odpadniesz, próbując tak, jak napisałeś. Naucz się używać istniejących bibliotek, potem pisz własne.

Ale rzecz jasna to tylko porada, jak Ci nie odpowiada - zignoruj. Tak czy owak - powodzenia.

0 głosów
odpowiedź 28 października 2016 przez Benek Szeryf (93,070 p.)
No właśnie po to są biblioteki. Nawet jak zrobisz własną, to najprawdopodobniej będzie ona gorsza od tych standardowych. Prześledź sobie kody źródłowe gotowych bibliotek. Pytanie tylko po co odkrywać koło na nowo? Są zagadnienia i programy, które do tej pory nie zostały jeszcze napisane. Zazwyczaj jest to oprogramowanie pod wąskie zagadnienie danej dziedziny. Ale prócz znajomości programowania, trzeba by się jeszcze znać na danej dziedzinie, np. ekonomii.

Podobne pytania

0 głosów
2 odpowiedzi 275 wizyt
pytanie zadane 14 lipca 2017 w C i C++ przez Artur Koniec Gaduła (3,680 p.)
0 głosów
0 odpowiedzi 131 wizyt
pytanie zadane 6 stycznia 2017 w C i C++ przez pewien_programista Obywatel (1,070 p.)
0 głosów
6 odpowiedzi 407 wizyt
pytanie zadane 9 lipca 2016 w HTML i CSS przez Kamil Czech Dyskutant (7,700 p.)

93,395 zapytań

142,389 odpowiedzi

322,569 komentarzy

62,753 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...