Willst du ganz frisch mit Programmieren anfangen oder hast du schon mit anderen Sprachen Erfahrung?
Als Buch in jedem Fall empfehlenswert ist nach wie vor
Programmieren in C. Das eigenet sich sowohl als Lehrbuch, als auch zum Nachschlagen. Das Buch bezieht sich allerdings nur auf C89, bzw.
das ursprüngliche ANSI-C.
Als Compiler für Windows ist neben der schon erwähnten kostenlosen Express Edition von Microsofts Visual C auch der GCC zu empfehlen. Der hat besseren C99 Support und du kannst Code schreiben, der portabler zu anderen Systemen ist (für x64, Unicode etc. wirst du früher oder später die eine oder andere nicht standardisierte Compiler-Erweiterung brauchen). Für den GCC brauchst du z.B. eine Umgebung wie
MinGW oder Cygwin (nimm im Zweifel MinGW). Als IDE dazu eignet sich z.B.
Eclipse CDT. Wenn du allerdings Code schreiben willst, der ausschließlich auf Windows laufen soll und nur C89 brauchst, würde ich dir empfehlen lieber Microsoft Visual Studio zu nehmen.
Als Einstieg in die Windows GUI Programmierung kann ich dir wärmstens das Tutorial von
winprog.org empfehlen. Visual Studio hat zwar einen GUI-Builder und Wizzards für GUIs, aber auch damit kommst du besser klar, wenn du erstmal verstanden hast, was da unten drunter passiert.