# C++ Notes: Graphical User Interfaces

There are hundreds of packages to use in creating GUIs (Graphical User Interfaces). Every proprietary operating system has one or more proprietary GUI library. In these notes I'll just mention Microsoft Windows, but something similar applies to MacOS, OS/2, etc. In addition to the many proprietary GUI packages, there are a number of popular portable GUI libraries.

1. Microsoft Windows. I'm not interested in system lock-in, so I don't pay much attention to these. However, the following are available.
   - MFC (Microsoft Foundation Classes) has been used in Microsoft Windows systems for a long time. Ugly and difficult, but of course it runs on a lot of systems.
   - The new .NET GUI system. I don't remember the name, but I've seen some of the things that are coming up in the Longhorn edition, and I was very impressed, eg, by XAML. But not portable, of course.
2. Portable (at least between Windows, Linux, and MacOSX). Here are some of the more popular systems.

   wxWidgets | www.wxwindows.org is a big system with a lot of other features (aka wxWindows).
   GTK+ | www.gtk.org
   Qt | www.trolltech.com
   FOX | www.fox-toolkit.org
   eFLTK | I haven't checked out this fork of FLTK, which sadly seems to be dying.

Overview. Read GUI Toolkits for The X Window System for an (old) overview of the these (and more). I've used FLTK, but it seems to be replaced by eFLTK, which I haven't checked out. I'd probably start with wxWidgets, but ...