创建C++ Builder菜单
2008-03-08 21:52:59 来源:WEB开发网核心提示:4.7.2 创建菜单可将每个要包含在应用程序中的菜单组件加到一个或多个窗体中,可以完全从头开始去创建每个菜单,创建C++ Builder菜单,或从预定义的菜单模板开始,本节讨论设计时创建菜单的基础,2) 若窗体有多个菜单,在窗体 的 Menu 属性下拉列表中选择要观察的菜单 ,1.命名菜单和其他所有组件一样,将一个菜单
4.7.2 创建菜单
可将每个要包含在应用程序中的菜单组件加到一个或多个窗体中。可以完全从头开始去创建每个菜单,或从预定义的菜单模板开始。
本节讨论设计时创建菜单的基础。
1.命名菜单
和其他所有组件一样,将一个菜单组件加到窗体中, C++ Builder赋给它一个缺省名,例如MainMenu1。可根据Object Pascal命名规则给该菜单一个更有意义的名字。
C++ Builder把菜单名加到窗体类型声明中,同时该菜单名出现在组件列表中。
2.命名菜单项
和菜单组件相反,在将菜单项加入窗体时需要显式地给菜单项命名。这有两种方式:
· 直接在name属性中键入值。
· 先在Caption属性中键入值,然后让C++ Builder由Caption属性派生出name属性值。
例如,假如将Caption属性设为File, C++ Builder指定菜单项name属性为F i l e 1。若你在填充Caption属性之前填写了name属性, C++ Builder将在填充C a p t i o n属性之前将其值保持为空。
注重若填充Caption属性时使用了无效的C + +标识符, C++ Builder会相应地修改name属性。例如,假如希望标题以数字开始, C++ Builder会在数字前冠以字符以派生name属性。
表4 - 1举出了这样的一些例子,假定表中所有的菜单项出现在相同的菜单栏中。
和菜单组件一样, C++ Builder会把菜单项名加到窗体类型声明中,同时这些菜单项名出现在组件列表中。
3. 新增、插入和删除菜单项
下列过程描述如何完成创建菜单结构的基本任务。每个过程都假定有一个打开的菜单设计器窗口。
若要在设计时加入菜单项:
1) 选择需在何处创建菜单项。假如是初次打开菜单设计器,则菜单栏的第一个位置将被选择。
2) 开始键入Caption属性。或通过使用光标在对象观察器中选择并首先键入Name属性值。在这种情况下,需要重选Caption属性并键入值。
3) 按回车键(E n t e r)。下一个菜单项的放置位置被选中。若首先键入Caption属性值,使用方向键返回刚才建立的菜单项。可以看到C++ Builder以Caption属性值为基础派生出了Name属性值。
4) 继续为需创建的各个新的菜单项键入Caption属性及Name属性,或按Esc键返回菜单栏。可使用方向键从菜单栏进入菜单中,并在菜单列表项之间移动;按回车键完成动作。按Esc键可返回菜单栏。
若要插入新的空白菜单项:
1) 将光标放在一菜单项上。
2) 按下Ins键。
菜单项将插入菜单栏中被选择项的左边,并在菜单项列表中显示在被选择项之上。
若要删除菜单项或命令:
1) 将光标放在要删除的菜单项上。
2) 按下D e l键。
注重不能删除最后加入菜单项列表的菜单项以下的缺省位置,或菜单栏最后一项后面的位置。这些位置在运行时并不出现菜单中。
4. 加入分隔条
分隔条会在菜单项之间插入一条分隔线。可使用分隔条将菜单列表分类,或只提供视觉上的分隔。
若要将菜单项加入分隔条,可在Caption属性值中键入连字符(-)。
5. 指定加速键和快捷键
加速键可使用户从键盘通过压下Alt +适当的字符键来访问菜单命令,这在代码中通过前缀字符&表示。前缀字符&之后的字符在菜单出现时带有下划线。
C++ Builder自动检查重复的加速键并在运行时做出调整。确保运行时动态创建的菜单不包含重复的加速键,并且所有菜单项都有一加速键。通过将菜单项的AutoHotkeys属性设置为maManual可关掉这种自动检验。
若要指定一加速键:
· 在适当的字符前加一前缀字符&。
例如,欲将Save菜单命令中的S做为加速键,可键入& Save。
键盘快捷键可使用户不使用菜单而直接通过快捷键的组合键入来完成动作。
若要指定键盘快捷键:
· 使用对象观察器设置ShortCut属性,或从下拉列表中选择一组合键。
这一列表只列出有效的组合键的一部分。
加入快捷键时,会出现在该菜单项标题的旁边。
警告快捷键不像加速键可以自动检查重复键。必须自行确保其唯一性。
6. 创建子菜单
许多应用程序菜单包含下拉列表,它出现在菜单项旁边用于提供相关的附加命令。这些列表用菜单项右边的箭头来指示(如图4-6所示)。C++ Builder支持在菜单中加入多层这样的子菜单。
以这种方式来组织菜单结构可节省垂直屏幕空间。不过,在界面设计时只使用到二或三层子菜单可达到最佳的设计效果(对弹出式菜单而言,最好只用一个子菜单)。
若要创建子菜单:
1) 选择需创建子菜单的菜单项。
2) 按下Ctrl - >创建第一个空位置,或右击并选择Create Submenu。
3) 给子菜单项设置名字,或将一现有的菜单项拖入该位置。
4) 按回车键,或按下向下方向键创建下一个位置 。
5) 重复步骤 3 和 4 创建子菜单所需的各个项 。
6) 按下 Esc 键返回上一级菜单。 (1) 通过降级现有菜单创建子菜 单 可通过将菜单栏(或菜单模板)中的菜单项插入菜单项列表中来创建子菜单 。将菜单移动到现有的菜单结构时,其所有的相关项都会一起移动,从而创建出完整的子菜单。对于子菜单也相同,将菜单 项 移动到现有的子菜单时,会创建下一层的子菜单 。
(2) 移动菜单项 在设计时,可简单地通过拖放移动菜单项。菜单项可在菜单栏中菜单列表的不同位置移动,或移入完全不同的菜单。
唯一的例外情况是针对于层次型的 : 不能将菜单栏中的菜单项降级到它们自己的菜单中;也不能 将 菜单项移入它们自己的子菜单。 不过,不管原始的位置如何,任何菜单项都可移入不同的菜单。
在拖动菜单项时,光标会发生变化以指示是否菜单项可放置新的位置 。 当移动菜单项时,其下的 任 何项也会随之移动 。
若要沿菜单栏移动菜单项:
1) 沿菜单栏拖动菜单项直到光标箭头指向新位置 。
2) 松开鼠标键将菜单项放在新位置上 。
若要将菜单项移入菜单项列表 :
1) 沿菜单栏拖动菜单项直到光标箭头指向新菜单,这将打开该菜单,以便将菜单项移到新位置 。
2) 将菜单项拖入列表中,松开鼠标键以将菜单项放在新位置 。
7. 在菜单项中加入图 像
与菜单项动作相对应的图像或图片可帮助用户更方便地查找和使用菜单项,这类似于工具栏图像 的 作用。若要在菜单项中加入图像 :
1) 将 TMainMenu 或 TPopupMenu 对象放入窗体。
2) 在窗体中加入一 TImageList 对象。
3) 双击 TImageList 对象以打开 ImageList 编辑器。
4) 单击 Add 选择需在菜单中使用的位图或位图组。并单击 OK 。
5) 将 TMainMenu 或 TPopupMenu 对象的 Images 属性设为刚才创建的 ImageList 的名字。
6) 创建菜单项和子菜单项 。
7) 在对象观察器中选择需加入图形的菜单项,将 其 ImageIndex 属性设置为所用图形 在 ImageList 中 的相应编
( ImageIndex 属性的缺省值为- 1 ,同时,缺省时不显示图形 ) 。
注重 16×16 像素的图形最适于在菜单中显示 。虽然可使用其他尺寸的图形,但使用大于或 小 于 16×16 像素的图形可能会引起对齐或一致性问题 。
8. 观察菜单
可在窗体的设计时观察菜单而不需运行程序代码 。 (弹出式菜单组件在窗体的设计时可见,但是弹出式菜单本身则不行 。可使用菜单设计器在设计时观察弹出式菜单 。)
要观察菜单:
1) 若窗体可见,单击窗体,或 从 View 菜单中选择包含要观察菜单的窗体 。
2) 若窗体有多个菜单,在窗体 的 Menu 属性下拉列表中选择要观察的菜单 。这时菜单将出现在窗体中并与运行时的显示完全相同。
- ››菜单管理
- ››菜单程序
- ››菜单文件的类型、结构和使用
- ››菜单项的动态装入
赞助商链接