Writing GUI programs in C or C++ isn't all that hard once you've seen a couple well described sample programs.
If you use Visual C++, you can link to MFC (Microsoft Foundation Class) which has a whole bunch of classes used in creating windows, dialogs, passing messages, etc. Windows are object types, just like integers. So when you say "int myinteger;" you create an integer somewhere in memory. When you say "CWnd mywindow;" you create a window - then give it attributes like where to display, what child windows it has, etc.
If you are hard-core C only, then there is the world of WinAPI and #include "windows.h" The MFC classes are actually wrappers around WinAPI functions
If you're not sure which one you are interested in, go with MFC. WinAPI is a world of pain you do not want to enter in.
This is the book I used to learn MFC:
Getting Started with Microsoft Visual C++ 6 with an Introduction to MFC (2nd Package Edition)
Published by Deitel
I like it cause it is very short (163 pages) and contains examples specific to windows programming. You are expected to know how to program in general.
Oh yeah - see if you can get a program called Spy++ (comes with VC++) Open it up, and browse your desktop. After using that program, you will never look at windows the same.