Grafische Benutzerfläche?

06/10/2012 14:45 xpacman_pr0#1
Hey Leute,

ich habe mir ein Buch zum lernen von C++ gekauft,
weil ich mir dachte das Batch ja keine richtige Programmier Sprache ist
und dieser Schwarze Bildschirm auf gut deutsch einfach Schei*e aussieht.
Soweit so gut aber als ich das Programm startete,
Frustation,
Alles Schwarz.

Jetzt meine Frage:
Wie krieg ich da Grafiken rein und muss man da etwas besonderes lernen?
06/10/2012 16:35 21_0x15_025_NAK#2
Schwarzer Bildschirm = Kommandozeile/Terminal???

Da ich auch gerade C++ lerne gib ich mal nen Rat: Fang erst gaaanz spät mit dem GUI Zeug an. Es braucht oft sehr lange bis man die Grundlagen dieser Sprache beherrscht...und dazu gehört kein GUI Programmieren.

Wenn du schnell GUIs haben willst lerne C# oder VB.Net
06/10/2012 16:49 xpacman_pr0#3
:S
Dafür ist's schon zu spät^^
Buch gekauft + Hälfte durchgelesen^^
Aber egal ich bleib am Ball habe mir ja nicht umsonst C++ ausgesucht ;)
06/10/2012 17:24 21_0x15_025_NAK#4
Naja...ich leide mit dir ich lerns ja auch gerade.
Manche brauchen ein paar Jahre um die Grundlagen schon zu verinnerlichen, also wird das nicht mal so auf die schnelle gehen.
Natürlich will man GUIs programmieren um "was zu haben" allerdings was helfen einem GUIs wenn man überhaupt nix kapiert.

Kannst dich ja später mal mit wxWidgets oder Qt beschäftigen (GUI Frameworks)...es sei den du willst wirklich mit WinApi programmieren...(ob das wirklich zu empfehlen ist...naja).

Jedenfalls braucht man für die Grundlagen GUIs überhaupt nicht...auch wenn Konsolenfenster nicht gerade das feinste sind.


Ach nochwas...wenn das wirklich die Konsolenfenster sind (wovon ich mal ausgehe)...dann wirst du da überhaupt keine Grafiken reinbringen.
06/10/2012 21:49 Nightblizard#5
Windows Application Programming Interface

Alles weitere findet man bei Google. :)

Und was ist so falsch mit der Konsole? Ihr unterschätzt das Teil gewaltig und werdet es noch sehr zu schätzen wissen! ;)
06/11/2012 08:38 21_0x15_025_NAK#6
Quote:
Originally Posted by Nightblizard View Post
Windows Application Programming Interface

Alles weitere findet man bei Google. :)

Und was ist so falsch mit der Konsole? Ihr unterschätzt das Teil gewaltig und werdet es noch sehr zu schätzen wissen! ;)
Hey als Linux Fan liebe ich das Terminal :D
Aber warum rätst du zur WinApi statt zu Qt oder wxWidgets.

Ich habe selbst noch keine GUI Erfahrung und möchte da gerne Meinungen/Empfehlungen hören (bitte nicht steinigen ich bin absoluter Noob :)).

Bei wxWidgets und Qt gibt es ja auch Lizenzbeschränkungen habe ich gehört...dafür laufen sie auf mehreren Systemen
06/11/2012 13:48 phreeak#7
man sollte erstmal lernen kleine programme zuschreiben mit dennen man auf der Console/oder Kommandozeile arbeitet. z.B mit Eingaben die gespeichert und weiter verarbeitet werden und auch Sachen wieder ausgegeben werden. Wenn man das alles drauf hat und weiss wie c++ funktioniert mit Datenstrukturen, das generische Programmieren, richtiges Objectorientiertes Programmieren usw.. dann kann man ne GUI erstellen, die die Aufgabe der Console erledigt. Sprich Basics lernen erstmal und verstehen..
06/11/2012 14:50 xpacman_pr0#8
Ja ^^ Hab mir ja ein Buch gekauft das ich auch fleißig am durch suchten bin :D
06/11/2012 17:03 dowhile#9
Wenn du dir ein solides Grundwissen erarbeitet hast kannst du dir auch SFML oder so anschauen (damit kannst du Spiele schreiben). Das macht IMHO mehr Spaß und die API ist recht einfach.
06/11/2012 18:27 MrSm!th#10
Quote:
Dafür ist's schon zu spät^^
Buch gekauft + Hälfte durchgelesen^^
Das heißt nichtmal annähernd, dass du sie gelernt hast.

Quote:
Naja...ich leide mit dir ich lerns ja auch gerade.
Wenn man es freiwillig lernt, ist es kein Leid.

Quote:
Natürlich will man GUIs programmieren um "was zu haben" allerdings was helfen einem GUIs wenn man überhaupt nix kapiert.
Die besten geschriebenen Programme sind Konsolenprogramme.

Wer braucht GUIs?

Quote:
Jedenfalls braucht man für die Grundlagen GUIs überhaupt nicht...auch wenn Konsolenfenster nicht gerade das feinste sind.
Warum nicht?
06/11/2012 22:26 MoepMeep#11
Quote:
Originally Posted by 21_0x15_025_NAK View Post
Hey als Linux Fan liebe ich das Terminal :D
Aber warum rätst du zur WinApi statt zu Qt oder wxWidgets.

Ich habe selbst noch keine GUI Erfahrung und möchte da gerne Meinungen/Empfehlungen hören (bitte nicht steinigen ich bin absoluter Noob :)).

Bei wxWidgets und Qt gibt es ja auch Lizenzbeschränkungen habe ich gehört...dafür laufen sie auf mehreren Systemen
Weil man mit Qt/wxWidgets nichts lernt. Dadrauf kann man umsteigen wenn man es kann um sich arbeit zu sparen.
06/12/2012 09:17 BashBoomBang#12
Dann hast du wohl dir die falsche Programmiersprache ausgewählt, wenn du wirklich zum größten Teil GUIs erstellen möchtest mit möglichst vielen vorgegebenen Methoden, dann empfehle ich dir:

C#.NET!

Wenn natürlich hardware nähere Programme schreiben möchtest sowie technisch hochwertige (Performance...) dann würde ich bei C++ bleiben, da ist aber die GUI der letzte Meilenstein.
06/12/2012 10:07 Tyrar#13
Quote:
Originally Posted by BashBoomBang View Post
Dann hast du wohl dir die falsche Programmiersprache ausgewählt, wenn du wirklich zum größten Teil GUIs erstellen möchtest mit möglichst vielen vorgegebenen Methoden, dann empfehle ich dir:

C#.NET!

Wenn natürlich hardware nähere Programme schreiben möchtest sowie technisch hochwertige (Performance...) dann würde ich bei C++ bleiben, da ist aber die GUI der letzte Meilenstein.
man setzt sich einmal mit der GUI auseinander und kanns dafür aber auch.
06/12/2012 13:54 xpacman_pr0#14
Quote:
Originally Posted by MrSm!th View Post
Das heißt nichtmal annähernd, dass du sie gelernt hast.

Wenn man es freiwillig lernt, ist es kein Leid.

Die besten geschriebenen Programme sind Konsolenprogramme.

Wer braucht GUIs?

Warum nicht?
Hab ich nie behauptet ;)

Und werden die meisten Spiele nicht auch in C++ geschrieben?

Ist dann doch auch eine GUI, oder?
06/12/2012 15:30 Status#15
Quote:
Originally Posted by xpacman_pr0 View Post
Hab ich nie behauptet ;)

Und werden die meisten Spiele nicht auch in C++ geschrieben?

Ist dann doch auch eine GUI, oder?
Code:
#include <windows.h>


LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
							 WPARAM wParam, LPARAM lParam);

int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
					LPSTR lpcmdline, int ncmdshow)
{
	WNDCLASSEX windowclass; 
	HWND       hWnd;        
	MSG        message;     
	
	const char szClassName[] = "Wow...keine console..";

	// 
	windowclass.cbSize = sizeof (WNDCLASSEX);

	// 
	windowclass.style = CS_HREDRAW | CS_VREDRAW;

	// 
	windowclass.lpfnWndProc = WindowProc;

	//
	windowclass.cbClsExtra = 0;
	windowclass.cbWndExtra = 0;

	//
	windowclass.hInstance = hInst;

	//
	windowclass.hIcon   = LoadIcon (NULL, IDI_APPLICATION);
	windowclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
	windowclass.hCursor = LoadCursor (NULL, IDC_ARROW);

	// 
	windowclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND+1;

	// 
	windowclass.lpszMenuName = NULL;

	// 
	windowclass.lpszClassName = szClassName;

	// 
	if (!RegisterClassEx (&windowclass) )
		return (0);
        // 
	hWnd = CreateWindowEx (NULL,
					szClassName,
					"Wow...keine console..",
					WS_OVERLAPPEDWINDOW | WS_VISIBLE,
					100, 100,
					300, 250,
					NULL,
					NULL,
					hInst,
					NULL);

	// 
	if (hWnd == NULL)
		return (0);

	//
	while (GetMessage (&message, NULL, 0, 0) )
	{
		TranslateMessage (&message);
		DispatchMessage (&message);

	}

	// 
	return (int)(message.wParam);

} 



//
LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
							 WPARAM wParam, LPARAM lParam)
{
	
	switch (message)
	{
		
		case WM_DESTROY:
		{
			
			PostQuitMessage (0);
			return (0);

		}

		
		case WM_KEYDOWN:
		{
			
			switch (wParam)
			{
				
				case VK_ESCAPE:
				{
					
					PostQuitMessage (0);
					return (0);

				}
			}
		} break;
	} 

	
	return (DefWindowProc (hWnd, message, wParam, lParam) );
}
Da haste ein provisorisches Fenster, was bringt dir das? Nichts.
Wenn du die ganzen Befehle, Schleifen, Bedingungen etc. nicht kannst (Und das lernt man nicht durchs lesen, sondern ua. durch eigenes rumexperimentieren), bringt dir ein GUI nichts. Zumaln du nicht mal zu wissen scheinst, was GUI tatsächlich heißt.
Denn, du kannst ein Spiel auch aus einer Console heraus starten, indem du es in den Vollbild/Fenster Modus wechseln lässt. Nur weil dir die Console irgendwann langweilig vorkommt, verliert sie nicht an Kraft - Sie gehört nämlich mit zu den mächtigsten Werkzeugen.

Wenn du lernen willst zu programmieren, brauchst du in erster Linie Zeit und vorallem Geduld, wenn du das nicht hast, brauchst du gar nicht weiter machen.
Ein eigenes GUI kommt noch früh genug, lern erstmal die Grundlagen, taste dich dann langsam weiter vor.