Although there's a lot of good GUI's out there, as a beginner... and if you just started yesterday... Jumping into creating a photo viewing application will probably be scary. GUI's are scary. At least to me. It took me several months before even thinking about leaving the console.
I am just beginning with C++ also and I have some pretty ambitious goals and ideas as well. But I know that I will get myself in way over my head if I jump into the things I want to create. So what I do is keep a notebook next to my desk and I write all of my ideas down when they come to me. I try to be as specific as I possibly can about how I would want the program to run and work.
Then when I get to a point where I can confidently make them happen.. they will happen.
GUI's tend to have a lot of code in them just to manage the visuals and cosmetics. There's an additional library, SFML that I am trying to get working on my machine now... having that annoying cannot locate the dll (that is sitting in the folder you just found) for use error... Here's the link:
The problem with Standard C++ is it comes low-level enough. Software GUI in modern days are almost essential that it should be part of Standard C++ isn't it ? Java JDK has Java Swing but sadly, Standard C++ require us to hunt around for those GUI libraries :(
Maybe Standard C++ still want to dwell in back-end instead of "see-ing" users huh ? Of cuz, with the exception of WinAPI but even that is changing with .NET stuff going on :)
Java is also able to do this because by it's nature it is portable - C++ is not necessarily. Java is effectively an interpreted language, making one standard lib work on all systems which have the appropriate interpreter (JRE). C++ does not have this feature, thus making a huge/giant library part of the language doesn't make much sense. At least to me it doesn't.
@Desh
I had that same dll problem with SFML too. I'm on my fourth install to see if it will work.
+1 SealCodes for setting goals and waiting to achieve them. If you work to get to your goal and then achieve it easily because you are knowledgeable, then it will be feel better than rushing ahead.
A hopefully short metaphor of doing something like this comes to mind....I am a musician and an amateur programmer, I have learned that not all things should receive the same treatment in learning. Music requires patience and practice (and I mean A LOT of practice) to learn new things, while programming requires pre-requisite knowledge (as you move up) to learn new things. If you are new to say, guitar, well if you practiced enough you could play the intro to Sweet Child O' Mine, but if you are new to programming you can't just learn what a class is because you need to learn a plethora of other skills first. So before you jump into creating tedious flashy GUIs, you should probably set small goals and lead up to that (similar to what SealCodes is doing).
Ok, seeing as to how everyone of the eebsites i post on keep saying i should just slow down. ( and do to extinsive physics homework) i will slow down. So now i ask; what next. I need a program idea to tie in all im learning to fully inderstand it. ( however i still am checking out that gui framework.