Now, Lord knows C++ allows you to do some pretty crazy stuff with pointers that negates the whole point of wrapping functions and data into objects.That said, the way MFC is structured makes it easy to create Windows applications that perform powerful tasks without you having to program all the little ways MS likes you to present information, buttons, lists, etc. - all that's done for you. You just concentrate on writing the code that does the real work, and let MFC handle the window-y stuff. Even if you don't like the way they implemented something, that object is based on a more abstract object which you can use to build a new object by only having to change the questionable part - you don't have to write it from scratch.
Well, I'm happy because since that job about 4 years ago I haven't done much programming at all, let alone Windows programming. And this past week I was able to write a MFC application from scratch. Just because I've been doing a lot of analyst work at my new job, my bosses decided I needed a break and gave me a task to write a quick and dirty program to solve a small problem. And I had a blast doing it.
So screw the haters - I ♥ MFC.
Read this article