Have you used any of the Win32 API(s)? Windows Forms is about the first generation that isn't too painful to use. VB6 before it was manageable too, but all the abstractions are leaky and you have to delve into the raw C API sooner or later. MFC was a complete train wreck.