Let's see.
- Win32 is very low-level, C based, and awkward to use.
- MFC is considered obsolete.
- C# (or C++) with .NET is probably your primary choice for Windows-specific development.
- There are even semi-limited ways to port that code to other platforms (Mono).
Java is great for very platform-independent code that "just runs". Sorry, you said C++.
- QT is relatively platform-independent.
- GTK+, of course, although I personally don't have much experience with it.
Personally, if I do something Windows-specific, I use .NET - the tools in Visual Studio are very powerful, and it's a great all-encompassing suite.
For platform-independent stuff, I use Java, but that may not be your tool of choice. I've seen QT used a lot for that purpose.