I'm currently a university student learning C++ among other things. I'm getting to the stage where I believe I'm sufficiently competent to start working on some projects to further my knowledge. In particular, I'd like to make a few basic GUI programs for Windows and/or linux-like operating systems, and would like to know of some decent guides to teach myself as I go along. Would anyone know of an appropriate guide?
In particular, I was thinking that writing a small calculator program would be a good starting project. Any advice on undertaking such a task would be greatly appreciated, thanks.
I started GUIs by trying out the SFML library. However it was so high-level and so difficult to link that I didn't learn a lot and had to do a bunch of extra work for what I did learn.
My next attempt at GUIs was pure Win32. I wanted to learn the absolute basics so that I knew what the higher level libraries were doing. This is the tutorial I used which was excellent. It's in C by the way. http://www.winprog.org/tutorial/
Eventually I built a C++ wrapper for the pure Win32 to make my life much easier. I built two applications with this wrapper but came across problems with the implementation. I could make applications, but things like tabbing from edit-box to edit-box weren't working properly.
Next I got into Qt widget programming. This was a huge breakthrough for me because I could actually get stuff to look the way I imagined. I spent more time creating and less time coding. All of the extras in this library make things so easy to work with (ex QTimer helps build non-event triggered stuff). I've managed to make some pretty nice and complicated things with Qt that would have taken me months to do in Win32.
I was discussing the limitations I encountered with my Win32 wrapper with a colleague and he told me that these are problems that guys at Microsoft have been working on for the past 20 years. Their solution is MFC (Microsoft foundation classes) and it's a high-level and well developed wrapper for Win32. I went through a tutorial on how to use it here: http://www.cprogramming.com/tutorial/game_programming/same_game_part1.html
This tutorial was also excellent and I recommend it. In general, however I didn't find any advantages of MFC over Qt. I really like Qt and I think I will continue to use that for my GUI works.