|
|
|
![]() | |
|
|
|
To access the contents, click the chapter and section titles.
Visual Basic 6 Black Book
What the user wants appears in Figure 5.10. As you can see in that figure, the Colors item in the Edit menu has a small arrow at the right. This indicates that theres a submenu attached to this menu item. Selecting the menu item opens the submenu, as also shown in Figure 5.10. As you can see, submenus appear as menus attached to menus.
Submenus let you organize your menu system in a compact way, and adding them to a program is simple. For example, lets say you started this way, with a Red, Green, and Blue menu item in the Edit menu: Edit ....Cut ....Copy ....Paste ....Red ....Green ....Blue ....Select All To put those items in a submenu, we first add a name for the submenusay, Colors: Edit ....Cut ....Copy ....Paste ....Colors ....Red ....Green ....Blue ....Select All All thats left is to indent (using the right arrow in the Menu Editor) the items that should go into that submenu (note that they must appear just under the submenus name): Edit ....Cut ....Copy ....Paste ....Colors ........Red ........Green ........Blue ....Select All Thats itclose the Menu Editor. You add code to submenu items in the same way that you add code to menu itemsjust click them to open the corresponding event-handling function and add the code you want, as weve done here to report the users color selection:
Private Sub mnuEditColorsBlue_Click()
MsgBox ("You selected Blue")
End Sub
Private Sub mnuEditColorsGreen_Click()
MsgBox ("You selected Green")
End Sub
Private Sub mnuEditColorsRed_Click()
MsgBox ("You selected Red")
Creating Immediate (Bang) MenusSometimes youll see immediate menus (also called bang menus) in menu bars. These are special menus that dont openwhen you merely click them in the menu bar, they execute their associated command. The name of these menus is followed with an exclamation mark (!) like this: Download! When you click the Download! item in the menu bar, the downloading process starts at once, without opening a menu at all. Now that toolbars are so common, one sees fewer immediate menus (that is, toolbars act very much like immediate menus are supposed to work), but some programmers still use them And because theyre easy to create, well cover them here. To create an immediate menu, just add a menu, such as Download! (dont forget to add exclamation point on the end of Download in the Caption property, but not in the Name property), and dont give it any menu items. Instead, place the code you want to run in the Click event handler for the menu itself:
Private Sub mnuDownload_Click()
MsgBox ("Downloading from the Internet...")
End Sub
Thats all you need. Now when the user selects the Download! menu, this code will be executed. Were about to execute the Download! immediate menu in Figure 5.11. Note that there is no menu opening, even though the Download! item in the menu bar is selected.
Using The Visual Basic Predefined MenusYou can use the Visual Component Manager to add a predefined menu to a form (note that not all versions of Visual Basic come with the Visual Component Manager). As you can see in the Visual Component Managers Visual Basic|Templates|Menus folder, as shown in Figure 5.12, six predefined menus are available. These menus include a File menu, an Edit menu, a Help menu, a Window menu, and so on. To add one of these menus to a form, just select the form and double-click the menu in the Visual Component Manager.
For example, we can add a predefined File menu to a form this way. The result appears in Figure 5.13.
Adding a predefined menu also adds code to the form. For example, heres the skeletal code thats added when you add a predefined File menu: Private Sub mnuFileNew_Click() MsgBox "New File Code goes here!" End Sub Private Sub mnuFileOpen_Click() MsgBox "Open Code goes here!" End Sub Private Sub mnuFilePrint_Click() MsgBox "Print Code goes here!" End Sub Private Sub mnuFilePrintPreview_Click() MsgBox "Print Preview Code goes here!" End Sub Private Sub mnuFilePrintSetup_Click() MsgBox "Print Setup Code goes here!" End Sub Private Sub mnuFileProperties_Click() MsgBox "Properties Code goes here!" End Sub Private Sub mnuFileSave_Click() MsgBox "Save File Code goes here!" End Sub Private Sub mnuFileSaveAll_Click() MsgBox "Save All Code goes here!" End Sub Private Sub mnuFileSaveAs_Click() MsgBox "Save As Code goes here!" End Sub Private Sub mnuFileSend_Click() MsgBox "Send Code goes here!" End Sub
Adding A Checkmark To A Menu ItemWhen you want to toggle an option in a program, such as Insert mode for entering text, its easy to add or remove checkmarks in front of menu items. Displaying a checkmark gives visual feedback to the user about the toggle state of the option, and theres two ways to add checkmarks to menu items: at design time and at runtime. Adding Checkmarks At Design Time To add a checkmark to a menu item at design time, you simply select the Checked box in the Menu Editor, as shown in Figure 5.14, where we add a checkmark to the Edit menus Insert item.
Now when the Edit menu is first displayed, the Insert item will appear checked. Adding Checkmarks At Runtime You can also set checkmarks at runtime using a menu items Checked property. For example, heres how we toggle the Insert items checkmark each time the user selects that item; setting Checked to True places a checkmark in front of the item, and to False removes that checkmark:
Private Sub mnuEditInsert_Click()
Static blnChecked As Boolean
blnChecked = Not blnChecked
mnuEditInsert.Checked = blnChecked
End Sub
Running this code toggles a checkmark in front of the Insert item, as shown in Figure 5.15.
|
|
Products | Contact Us | About Us | Privacy | Ad Info | Home
Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc. All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited. |