The Windows Platform SDKEdit
The Microsoft Windows Software Development Kit is a simple, free set of tools and libraries to create windows programs in C and C++. The SDK contains the standard windows header files, the link libraries, the compiler (cl.exe), and the linker (link.exe). The SDK is available as a free download from Microsoft.
Another option is Microsoft Visual C++, a commercial IDE and is an option worth looking into for serious Windows programmers. MSVC++ is almost a de facto standard Windows programming IDE.
The best option for a beginner is Microsoft's .NET platform. .NET developers can use Microsoft Visual Studio.NET, Borland C#Builder (discussed earlier), the Visual Studio Express products and SharpDevelop.
The Visual Studio Express products are Microsoft-provided stripped down versions of Visual Studio, designed to provide an entry-level product for Windows programmers. They are currently free and in beta, but they are expected to become a low-priced commercial product once they are released. As of this writing, Visual Studio Express supports Managed C++, C#, Visual Basic .NET, and J# for Windows programming. All Visual Studio Express products use the same compilers as the commercial Visual Studio .NET.
In addition, Borland has released several of its compilers for free (although still proprietary) as Borland Command Line compiler tools. Borland requires users to log in in order to download these tools. They are quite small and fast, more so than gcc and DJGPP, and can build Windows applications with ease, especially for those accustomed with Borland tools.
SharpDevelop is a free and small IDE. It supports C# and partially supports Visual Basic.NET. However, you also need to obtain Microsoft's .NET SDK, which can be freely downloaded from Microsoft's site.
It's also possible to develop Windows programs in Forth (see the Forth article at Wikipedia) using WinForth, Win32Forth, SwiftForth, and RetroForth. Several of these can generate native Windows applications with much less bloat than C/C++.