Confusion in required knowledge for GUI

Do I have to highly master C\C++ both for making GUI?
But once saw some examples of Gui, I couldnt found that much similarity between GUI & C\C++
This entirely depends on what you will be using to make the GUI and what you mean by highly master. I'd personally say that once you've been through and understood all the tutorials on this site, then you'd be up to using a graphics library, which you can use to make a GUI. I personally don't use GUI libraries, but once you understand all the things in the site's tutorials, you can learn most libraries if you read the documentation and tutorials.
That's a tough question. Kind of like shadowmouse said, 'it depends'. I've written some on it here...

http://www.jose.it-berater.org/smfforum/index.php?topic=3389.0

But let me say this. In my opinion the only language that I know of that might make writing GUIs more difficult than C or C++ would be assembly language.

The WinApi choice doesn't appear to be very popular anymore here, for a numbr of reasons, chief among them being its more C based than C++ based, and the resulting code won't port to other platforms. Most new C++ coders seem to be pretty much bewildered by the WinApi.

The various Class Frameworks (.NET, MFC, etc) and cross platform toolkits (wxWidgets, QT, etc.) seem to have become most popular to C++ coders, possibly because the code vaguely resembles some of the things one learns in a basic C++ course or tutorial, and of course the code ports more readily to multiple platforms.

I do the WinApi thing because I started coding in C ages ago so its natural to me, and I like small, fast binaries with no or a minimum of dependencies. Also, I only do Windows. That's my work and main interest.

I personally take a somewhat dim view of the class frameworks and cross platform tookkits for two reasons.

Number one is that they are still going to be difficult to learn, simply because its still C++, which isn't the easiest language to master. If easy is what you want, why not just do .NET, Visual Basic, C#, or a host of others?

Secondly, you are going to have run time dependencies with your code, because you are coding against a higher level abstraction than the platform's low level Api; you've got anywhere from a megabyte to multiple megabytes of runtime dlls to include with your executables.

But if you don't care about the runtime dependencies (after all, users don't care how big your programs are, setup programs can take care of the installation, and storage space has become infinite), you are determined to use C++, and perhaps you wish cross platform capability, then do the Class Framework or Cross Platform thing. And likely not being familiar with C isms won't hurt too much. Just my opinion.
+1 for WinAPI.

I've found that you'll end up writing more code to accomplish the same thing in something like C#, but like freddie1 said (Hi Freddie!), smaller binaries and fewer dependencies. Bare in mind I am no expert in either of the various approaches to GUI development but have found that I don't mind writing more code, and so far have enjoyed learning the WinAPI.
Topic archived. No new replies allowed.