I agree, Quill. MSVC++ is a must for any Windows programmer. Windows itself is mostly written in it.

Another tool I would recommend for Windows programming is a good assembler. I used to start by writing my Windows code in C, compile to assembly language, optimize by hand, then assemble with MASM. VC++ comes in several different packages and price ranges: I have the least expensive one, and it does no optimization.

Generally, I now do my Windows development exclusively in assembly language, without even writing it in C. Assembly language is very easy under Windows since so much of it is just calls to system libraries anyway. But the result is much smaller and runs much faster, which is very important as under Windows your code is always competing with someone else's code running at the same time (well, not literally at the same time, but you know what I mean).

If your code is small, it has a better chance of being kept in the RAM all the time. And, of course, speed is of utmost importance.

By the way, now that I code in 100% assembly language, I prefer using NASM over MASM, mostly because it allows me to reuse the same code under Windows and Unix without modification. But for mixed C/assembly language programming MASM may be better since if you compile from C (or C++ - but I avoid C++ like a plague), the result will be in MASM syntax.

Even when programming in 100% assembly language, I use the VC++ editor. That way I have the complete Windows programming reference at my fingertips.