The problem with Windows is that it takes less time programming and more time thinking WTH is happening?!? Why doesn't this work?!
And there's no easy way to find out.
Windows is an extremely complex beast. If you want to do GUI programming, you should do with some sort of framework that handles these small details for you, so that you can do more actual programming than troubleshooting.
But this is where you really need to move up in the chain. While C may be sufficient for smaller projects, when it comes to larger projects, it usually becomes much more difficult. Therefore, the best thing would be to choose a high-level language, such as C++, C#, Java, etc.