MFC is old, complicated, and has an ugly public API which is just a thin wrapper around Win32 calls -- I find Win32 calls cleaner than MFC. And not portable of course (Windows, Visual C++ only).
It's an old thing that should have died a long time ago, but unfortunately it is still used in many products (many companies cannot afford switching to another GUI library).
The best alternative depends on what you need. If you like having a complete framework that provides almost anything that you'll need to build your application, Qt might be the best choice. wxWidgets is not bad too, but still not as good as Qt (which is owned by Nokia and developed by hundreds of trolls). If you prefer something more lightweight, there is FLTK; I never tested it.