C++ certainly isn't the easiest language to get started in, but perseverance is key and it's well worth it. Moving from Console to GUI isn't a massive step, but maybe that's because i never went into console in the first place (but writing a console app is very similar i've found). The key differences as a programmer is that you'll generally reference every procedure to your form (except completely custom ones). For example, button clicks, editbox changes, and everything else to do with the GUI itself is actually referenced by the form.
For example, instead of calling the procedure without giving it an "owner", you'll have something like;
Code:
void __fastcall TForm1::FormCreate(TObject *Sender)
WriteLn also isn't used for GUI applications. If you want to display text, you've got to "create" the objects. Don't worry, this is EXTREMELY simple and a fundamental basic of GUI development.
Create a new C++ project, GUI as opposed to console. If asked to save it, then go ahead and save somewhere suitable. Once that's done and you've got a grey area (known as the form) visible, locate your tool palette. This will usually be on the right of the screen (in both Visual Studio and RAD Studio). In "Standard", you should be able to find a "Memo" and "Button" component. Drag and drop one of each onto your form.
For this, i'll be using RAD Studio as i prefer it over VS, but VS should be very similar. Double-click the button, and you'll be taken to the code area that represents your buttons "onclick" code. From here, you'll need 1 line of code;
Code:
Memo1->Lines->Add("Hello World!");
Clicking the button will add a line of text that says "Hello World!" into the memo. Running the program and you'll see what i mean.
Although it's fairly self-explanatory, let me go through it.
Memo1 is the name of the object you want to work with. It can be ANY object. If you're designing everything on the form, then you can refer to them as above. If you're creating them at runtime (an intermediate area, but at the low end of intermediate), you'd need to actually write code to create the object.
Lines is the property we want to change (or refer to). You can view the published properties in the "property inspector", but you can often find more through code. In this case, it's the lines of text. Note that there's both a "Text" and "Lines" property. "Lines->Add" will add a whole new line, and "Text" will change the entire text of the memo.
Add is the function we're calling. This function is built into the memo component. In this case, we'll be adding a new line with "Hello World!".
Now, if you want to expand it, we can change it like this;
Code:
int MyInt;
MyInt=6;
Memo1->Lines->Add("Hello World!" + IntToStr(MyInt));
Int is a data type known as Integer. You probably know this already, but it's basically a number. It does have a limit, but the limit is very high. You're telling the compiler that "MyInt" is an integer with that first line.
With the second line, you're giving "MyInt" a value of 6.
With the third line, you're still saying "Hello World!", but now you're adding a space, followed by the value you assigned to MyInt. Which in this case is 6. You need to use the IntToStr function inside Lines->Add in order to display the number along with the text.
I'm not a major fan of C++ and i can't proclaim to know much of it. I much prefer delphi. It'd much more "English" than any other language i've found and i find i can read all but the most advanced code with ease, almost as if it's a book. However, C++ is much more popular in terms of employment. Recently, Delphi has seen a rise to 4% popularity (in an upward trend, not seen since the start of the 21st century!), but C++ is much more in demand and thus i always try to direct people that way. Both languages compile to native code (no need for extra DLL's in many cases).
If you're looking for an easy language to get into, Delphi is good. The basics are VERY similar in both C++ and Delphi, but the advanced stuff always seems much easier in Delphi to me. Delphi also isn't case-sensitive.
From there, you've got the very basis of your first GUI application. I'd strongly advise you just spend time experimenting. Remember, the property editor is your friend. The majority of properties you'll want to work with can be found there. Drop various different components onto the form and just experiment. GUI development at the start is all about discovery. Find something that interests you within it.
Console applications DO have their uses these days, but in all honesty, i've yet to find a task where i couldn't do something similar with a GUI. I'd much rather focus on creating a UI that can creatively display the information that resort to a console. At the basic level, it was always using text labels. Nowadays, and thanks to my framework, i can show graphs, charts, shapes and all sorts of stuff that allows me to improve the user experience.