GUI Design
What makes a good Graphical User Interface (GUI)? This question is discussed
in books and around the computer constantly. Now that you are the programmer and
indirectly the cause of these discussions I would like to give you what we, the
company I work for, have learned over the years.
- Color - Use basic, conservative, neutral colors. Never hard code the color
to a specific color as when the users change the Windows color scheme your
program may not appear in the worst case and usually looks out of place in the
best case. Use colors like, Button Face, etc., to keep your GUI in sync with
the current palette.
- Button Sizes - use standard sizes. By that I mean if your buttons differ
significantly from what is typically found in applications, it distracts from
the ease of use of your application.
- Borders - always leave about 10 pixels between all controls on a GUI.
Closer than that and the GUI becomes too cluttered. If you can not fit the
controls on the form, consider a redesign and use multiple forms.
- Forms - Each form should have one central theme. Add forms rather than
clutter up the main form.
- Controls - Buttons should follow a consistent pattern throughout all
forms. Buttons in a vertical stack imply a sequence of events that must be
followed from top to bottom. Buttons in a horizontal stack imply a sequence of
events that must be followed from left to right. Consistency is the key here,
consistent size, location and logical grouping.
- Keyboard - Every GUI must be usable from the keyboard alone! This means
adding access keys, and where possible shortcut keys to menus, labels, etc.
The tab order should be set logically and include only input controls. It
makes no sense to be able to tab to a read only control.
- Menu Items
- Every menu item should have a Hotkey assigned to it, i.e., &Copy.
- Also a Shortcut key should be the norm and not be assigned by exception
only, i.e., &Copy Ctrl-C.
- Also any menu item opening a dialog should have an ellipsis in the
Caption, i.e., &Open...
What do you do in the absence of guidance? Perform a quick research study on
all the GUI applications you use and determine if there is any agreement between
those applications pertaining to the area of GUI design in question. If there is
a general agreement, then use it, there is always safety in numbers. If there is
no agreement to be seen, then do you your best.