|
To access the contents, click the chapter and section titles.
Visual Basic 6 Black Book
(Publisher: The Coriolis Group)
Author(s): Steven Holzner
ISBN: 1576102831
Publication Date: 08/01/98
Chapter 5 Visual Basic Menus
- If you need an immediate solution to:
- Using The Visual Basic Application Wizard To Set Up Your Menus
- What Item Goes In What Menu?
- Adding A Menu To A Form
- Modifying And Deleting Menu Items
- Adding A Menu Separator
- Adding Access Characters
- Adding Shortcut Keys
- Creating Submenus
- Creating Immediate (Bang) Menus
- Using The Visual Basic Predefined Menus
- Adding A Checkmark To A Menu Item
- Disabling (Graying Out) Menu Items
- Handling MDI Form And MDI Child Menus
- Adding A List Of Open Windows To An MDI Forms Window Menu
- Making Menus And Menu Items Visible Or Invisible
- Creating And Displaying Pop-Up Menus
- Adding And Deleting Menu Items At Runtime
- Adding Bitmaps To Menus
- Using The Registry To Store A Most Recently Used (MRU) Files List
In Depth
Everyone who uses Windows knows about menustheyre those clever controls that hide away lists of items until you want to make a selection, like the Visual Basic File menu, which appears in Figure 5.1. And, in fact, thats the design philosophy behind menus: rather than presenting the user with all possible controls at once, menus hide their items until needed. Imagine a program with 50 buttons all over itSave File, Save File As, Insert Object, Paste Special, and so onyoud hardly have space for anything else. Thats why menus are so popular: they present their controls in drop-down windows, ready to use when needed.
Figure 5.1 The Visual Basic File menu.
In this chapter, were going to take a look at using menus in Visual Basic. Well start with an overview of designing your menu system, including some considerations that Microsoft has developed. Then well go to this chapters Immediate Solutions, seeing how to use the Visual Basic Menu Editor to create and modify menus. Well also see how to modify menus and the items they include from code, when a program is running. And, of course, well see some special topics, like how to create a Most Recently Used (MRU) list of files and how to use Windows functions to add bitmaps to menu items.
Well start our overview on Visual Basic menus now by taking a look at the parts of a menu.
Menu Design Considerations
Every Windows programmer is familiar with the parts of a menu; for reference, they appear in Figure 5.1. The menu names in a program appear in the menu barusually just under the title barand when the user selects a menu, that menu opens, like the File menu in Figure 5.1.
Each menu usually contains items arranged in a vertical list. These items are often grouped into functional groups with menu separators, or thin horizontal rules, as shown in Figure 5.1. When the user selects a menu item (from the keyboard or with the mouse), that item appears highlighted; pressing Enter or releasing the mouse button opens that item.
Menu items can also be disabled (also called grayed out), as shown in Figure 5.1. A disabled item is not accessible to the user and does nothing if selected.
TIP: If your program presents the user with a lot of disabled menu items, the user may feel locked out and frustrated. To avoid such situations, many programs add or remove menu items from menus at runtime, and well see how to do that in this chapter.
Access Characters And Shortcuts
Ideally, each item should have a unique access character for users who choose commands with keyboards. The user reaches the menu or menu item by pressing Alt key and the access character. The access character should be the first letter of the menu title, unless another letter offers a stronger link; no two menus or menu items should use the same access character.
Shortcuts are also useful to the user; these keys are faster than access characters in that the user only needs to enter a shortcut to execute the corresponding menu item. For example, the New Project shortcut in Figure 5.1 is Ctrl+N.
Note also that an ellipsis (
) should follow names of menu items that display a dialog box (Save As
, Preferences
, etc.) when selected. In addition, if you have menus in the menu bar that execute a command immediately instead of opening a menu, you should append an exclamation point to the menus name, such as Collate!
Designing Your Menus
A popular aspect of Windows is that it gives the user a common interface, no matter what program theyre using, and users have come to expect that. In fact, if its hard to learn a new, nonstandard Windows program, the user may well turn to a Windows-compliant alternative, so its a good idea to stick with the Windows standards.
Most programs have a File menu first (at left) in the menu bar, followed by other menus, like a View menu, a Tools menu, and so on, followed by a Help menu, which usually appears last (and often at the extreme right in the menu bar). Users expect to find certain standard items in particular menus; for a list of these items, see What Item Goes In What Menu? in this chapter.
Microsoft recommends that you keep your menu item names short. For one thing, if you want to release your application internationally, the length of words tends to increase approximately 30 percent in foreign versions, and you may not have enough space to list all of your menu items. Microsoft also recommends that you use the mnu prefix in code for menus, like mnuFile, and menu items, like mnuFileOpen.
That completes our overviewits time to turn to the Immediate Solutions.
Immediate Solutions
Using The Visual Basic Application Wizard To Set Up Your Menus
Probably the easiest way to get a substantial menu system going in your program is to design that program with the Visual Basic Application Wizard. The menu-designing window that appears when you build an application with the Application Wizard appears in Figure 5.2.
Figure 5.2 Using the Application Wizard to design a menu system.
You can arrange, add, or remove menu items with the click of a mouse. The Application Wizard isnt for everyone, but it can create a very complete menu system, as shown in Figure 5.3, where the File menu in the created application is open.
Figure 5.3 An Application Wizarddesigned programs menu system.
|