I've been using MFC for the past 6 years, and I never had problems either. However, if you take a while to test the same code without using MFC you'll find some differences. I even had to programm MFC like classes, to compile a MFC program without MFC, so I know how they are implemented. To allow window classes inheritance you require virtual fuctions and some extra code, which make's the code more complex. For example, in a callback function, it's much easier to return 0 if the message is not processed, that to run some code to call derived message maps. This doesn't mean MFC isn't properly implemented, just that this "layering" has a cost, and it's not a bad idea to determine it.