I had the same experience. And then I learned win32, the C predecessor of MFC, and it all started to make sense.
MFC is basically a horrible attempt to put an Object Oriented layer on top of win32. But they failed miserably at it. The API was so bad that I preferred just writing it in win32.
And no, this was not a failure of OO, this was a failure of understanding and applying OO.