Also, keep in mind that many people tend to learn a lot better simply by looking at code and reading it (especially after learning the basics). I didn't pick up a single book on programming C or C++ before I taught myself those languages, mostly through looking at other people's code and learning from it.
Some people certainly learn more from books, of course. However, before investing large amounts of money on any sort of books, you may want to check out what resources you can find online for free. Chances are, you'll be able to find more than enough to get started.
Finally, in agreement with Ex-Cyber above, you should aim to make portable code that isn't locked into one single vendor. I wouldn't recommend buying any books on general Windows programming, as they probably aren't going to be the most helpful things for developing games. Note, I haven't looked at any of the resources suggested in here, other than briefly looking over the titles as I read through the topics, so I can't really comment one way or the other on any specific book selections (also, as mentioned, I didn't really learn programming from a book, so any comments I would have on them probably wouldn't be particularly helpful).
If you're just looking at getting into game development, I'd recommend looking at the NeHe tutorial programs for OpenGL
. That way, you can still target Windows, but not be tied into one specific architecture. I'm specifically speaking about the "Legacy Tutorials" and "Legacy Articles" on that site. Mind you, they mostly cover OpenGL immediate mode, which isn't the recommended way to do things anymore, but it should still work in general. I learned quite a bit about OpenGL and graphical/game programming in general from reading the tutorials there, and I know a lot of other people who did as well.
One last thought I'd like to leave you with is to not expect to get a hold of everything overnight. Learning how to program in general is a thing that takes a lot of work and patience. Game programming adds more complexity on top of that, and requires thinking about things in a much different manner than desktop application programming. One thing I was told in the first CS class I ever took (in high school) was that it takes you 3 years to master your first programming language. It takes you three months to master the next one, three weeks the one after that, and three days the one after that. It certainly does get easier as you go along, but the initial learning curve can be quite steep (I don't necessarily agree with the 3 year figure, but I didn't want to change the quote