Absolutely -- nobody these days write apps directly in the Win32 API.
For good reasons....
People do use a higher level toolkit such as MFC, QT, GTK, etc. Yeah, I agree, the Win32 API exposes stuff that's hard to implement on Unix. But stop for a second and think at the following ideal scenario:
- all QT versions were free (and LGPL)
- GTK had a proper Win32 port, where they would not reimplement the widgets, but use the native ones like QT does
AFAIK Qt does not use native widgets on Windows, it does what GTK does and renders them itself. Or did last time I checked anyway. It does do a very good job of imitating the Win32 controls though. Also, check this out:
http://gtk-wimp.sourceforge.net/screenshots/
Who needs native widgets :)
- we had a stable Wine 1.0 :)
Now, Linux apps use either QT/KDE, GTK/GNOME, or wxWindows as a toolkit. If things are done right, we would have binary compatibility for the toolkit backends, so that one can choose either the GTK/Wine or GTK/X11 backend at runtime.
These cross platform toolkits are hiding all these low level things that are hard to implement, so we don't have that problem. But we would have a unified platform that would be quite cool.
There are *much* easier ways to get a unified platform imho..