The problem with your question is that a gui depends on so much. X-Windows, for example is a program which supports guis like KDE and Gnome. It was developed on the Unix Operating System, though always intended to be cross-platform and most people think of it as an Ubuntu GUI.
Naturally, given its age (it attained more or less its present form in 1989 though there are serious updates going on I did NOT see in the nineties) it is written mostly in C. Nevertheless Kenton Lee's site, which is the definitive site for it, links to several c++ programs:
http://www.rahul.net/kenton/xsites.html
There is one tutorial I have found very helpful. I discovered in in '95 on slackware and am still using it on Gentoo and Debian. The only thing is it was written in 1993 on Uni and it really doesn't know about modern desktops:
http://www.cs.cf.ac.uk/Dave/X_lecture/X_book_caller/index.html
As far as Windows goes, I am again going to recommend something which says "C" rather than "C++". Truth of the matter is that if you learn C++ it is a superset of C and I have watched several people who claim not to know C write pretty decent code which only uses C libraries. Actually this is a compiler for a language which is between both languages. It uses the name of a cross-platform compiler and is apparently based on that particular technology, it was written and is maintained by a Frenchman named Jacob Navia and the documentation he has written for writing Windows programs is REALLY REALLY AWESOME (sorry I shouted).
http://www.cs.virginia.edu/~lcc-win32/
Generally, frankly I would not create a GUI with C++. Or C. I would either use qt or Tc/Tkl which you should look up on your own and have the advantages of --in essence write once use anywhere (qt is usually compiled, tc/tkl is always interpreted) like Java.