I have never done C++ or C++ GUI programming, only paralell number crunching using C and small stuff in Java. However there is one advice I got in my programming courses that I would like to pass on:
Think before you type anything.

As stupid as this sounds but this is the fundamental weakness introduced by BASIC.

Once your project exceeds 1000 lines you are damned if you got no "big plan".
As a rule of thumb, I spend usually about two third of my time on doing scetches on paper, a small fraction on actually coding and unfortunately still a lot on debuging.

So before starting to learn advanced C++, learn some OO software engineering.