Teach Yourself Visual C++ 6 in 21 Days
- 6 -
Creating Menus for Your Application
- Menus
- Designing Menus
- Creating a Menu
- Creating the Application
- Adding and Customizing a Menu
- Attaching the Menu to Your Dialog Window
- Attaching Functionality to Menu Entries
- Creating Pop-Up Menus
- Creating a Menu with Accelerators
- Summary
- Q&A
- Workshop
Most Windows applications use pull-down menus to provide the user a number of functions
without having to provide buttons on the window. This enables you to provide your
users a large amount of functionality while preserving most of your valuable screen
real estate for other stuff.
Today you will learn
- How to create menus for your Visual C++ application
- How to attach a menu to your application's main dialog window
- How to call application functions from a menu
- How to create a pop-up menu that can be triggered with the right mouse button
- How to set up accelerator keys for keyboard shortcuts to menus
Menus
Back when the first computer terminals were introduced and users began using computer
software, even on large mainframe systems software developers found the need to provide
the users with some sort of menu of the functions that the computer could perform.
These early menus were crude by today's standards and were difficult to use and navigate.
Menus have progressed since then; they've become standardized in how they are used
and easy to learn.
The software designers that first came up with the idea of a graphical user interface
(GUI) planned to make computer systems and applications easier to learn by making
everything behave in a consistent manner. Menus used for selecting application functionality
were one part of the GUI design that could be more easily learned if they all worked
the same. As a result, a number of standard menu styles were developed.
Menu Styles
The first menu styles that were standardized are the pull-down and cascading menus.
These are the menus with the categories all listed in a row across the top of the
application window. If you select one of the categories, a menu drops down below
the category, with a number of menu entries that can be selected to trigger various
functions in the application.
A variation on this menu style is the cascading menu, which has another
submenu that opens to the right of a menu entry. This submenu is similar to the pull-down
menu, with a number of entries that trigger application functions. The menu designers
placed no limit on how many cascading menus can be strung together, but it quickly
became clear to most developers that more than two cascading levels is a little unwieldy.
Eventually, a third style of menu was developed, called a pop-up or context
menu--a menu that pops up in the middle of the application area, floating freely
above the application work area. This is also called a context menu because the specific
menu that pops up is dependent on the selected object or workspace area where the
cursor or mouse pointer is.
Keyboard Shortcut-Enabling Menus
When users began working with keyboard-intensive applications, such as word processors,
it was discovered that taking your hands off the keyboard to use the mouse to make
menu selections dramatically reduced productivity. Software designers decided that
they needed to add keyboard shortcuts for the various menu entries (especially the
most frequently used menu options). For this reason, keyboard shortcuts (accelerators)
and hotkeys were added.
Hotkeys are letters that are underlined in each menu entry. If you press
the Alt key with the underlined letter, you can select the menu entry that contains
the underlined letter. This is a means of navigating application menus without taking
your hands off the keyboard.
For more advanced users, application designers added keyboard shortcuts,
or accelerators. An accelerator is a single key combination that you can press
to trigger an application function instead of having to navigate through the application
menus. This allows advanced users to avoid the overhead of using menus for the most
common application functions. To enable users to learn what accelerators are available
in an application, the key combination is placed on the menu entry that it can be
used to replace, positioned at the right edge of the menu window.
Menu Standards and Conventions
Although there are no standards in how menus are designed, there are a number
of conventions for how they are designed and organized. All these conventions are
available in Windows Interface Guidelines for Software Design, published by
Microsoft for use by Windows software developers. The purpose of this publication
is to facilitate the development of consistent application behaviors, which will
help accomplish one of the primary goals behind the development of GUI systems. The
conventions are as follows:
- Use single-word menu categories across the top menu bar. A two-word category
can easily be mistaken for two one-word categories.
- The File menu is located as the first menu on the left. It contains all file-oriented
functions (such as New, Open, Save, Print, and so on), as well as the Exit function.
The Exit option is located at the bottom of the menu, separated from the rest of
the menu entries by a border.
- The Edit menu is next to the File menu. The Edit menu contains all editing functions
such as Copy, Cut, Paste, Undo, Redo, and so on.
- The View menu contains menu entries that control and affect the appearance of
the application work area.
- The Window menu is used in Multiple Document Interface (MDI) style applications.
This has functions for controlling the child windows, selecting the current window,
and altering the layout. This menu is the next-to-last menu from the right end of
the menu bar.
- The Help menu is the final menu on the right end of the menu bar. It contains
menu entries that provide instruction or documentation on the application. If the
application has any copyrighted or corporate information that needs to be available
for viewing, this should be located as the final entry on this menu, labeled About
<application name>.
Designing Menus
Menus are defined as a resource in Visual C++ applications. Because they are a
resource, you can design menus in the Visual C++ editor through the Resource View
tab on the workspace pane. When you first create a dialog-style application, there
won't be a menu folder in the resource tree, but you can change that.
NOTE: Various aspects of Windows applications are considered to be resources,
including window layouts, menus, toolbars, images, text strings, accelerators, and
so on. All these features are organized in what is known as a resource file,
which is used by the Visual C++ compiler to create these objects from their definitions.
The resource file is a text file with an .rc filename extension and contains a textual
description of all the various objects, including IDs, captions, dimensions, and
so on.
Some resources, such as images and sounds, cannot be described in text, but have
to be stored in a binary format. These resources are stored in individual files,
with the filenames and locations included in the resource file.
Creating a Menu
Creating a menu is
|