<;易语言程序设计>
作者:蔷薇的羽翼
第十三章菜单
当软件变得越来越复杂的时候,需要完成的命令也就越来越多,这众多功能需要有效地管理到一个小小的窗口中,这就是菜单的来历,每个应用程序都可以有一个菜单栏,按功能分组为不同类型的菜单项,每个菜单项中可以包换多种功能,子菜单中的菜单先又可以有子菜单,如此分层布局。
13.1设计普通菜单
窗口的菜单栏位于窗口标题栏的下方,菜单栏可以显示多个菜单标题,一个菜单标题可能只对应一个菜单命令,或则可以展开显示多个菜单项菜单,而每个菜单项可以有下一级的子菜单。
在易语言中利用菜单控件可以显示应用程序的自定义菜单,但菜单控件与其它标准控件不同,首先在工具箱中不到菜单控件,其次菜单具有其他控件所不具有的特性,菜单有固定位置外观结构,使用手工在窗口上不易绘制,因此易语言提供了一份菜单编辑器利用该工具可以轻松创建修改删除菜单。
13.2使用菜单编辑器
我们以最常见的文本编辑器(记事本程序)的菜单为例,说明如何使用菜单编辑器制作菜单。
在易语言开发环境中,打开需要添加菜单的窗口,然后执行工具-菜单编辑器菜单命令,就会打开菜单编辑器对话框。如图
最开始窗口上没有任何菜单,所以菜单编辑器的列表框是空的,下面我们开始创建菜单。
1.在对话框的“标题”文本框中,输入第一个菜单标题,即“文件”易语言会自动完成“名称”文本框的填充大多情况下可以不用更改。
2.然后点击“向后插入”或“向前插入”,这是列表框中增加一个菜单项,同时所有属性清空,光标停留在空白的“标题”上。
3.我们现在创建的“文件”菜单是顶级菜单,易语言中不允许无子菜单的顶层菜单出现,所以我们要添加子菜单。比如“文件”菜单下应该有“新建”“打开”“保存”“退出”等命令.
4.同样的在菜单编辑器中将所有菜单命令添加进来。并且设置每个菜单项的位置和从属级别即可。其中运用对话框中的左移右移等按钮可以方便的改变菜单项的位置和级别。
总之,我们可以利用菜单项在列表框中的位置可以判断该菜单控件是菜单标题还是子菜单标题。
1.位于列表框中左侧平齐的菜单控件座位菜单标题显示在菜单栏中。
2.列表框中被缩进的菜单控件,当单击其前导的菜单标题时才会在该菜单上显示。
3.一个缩进的菜单控件,如果后面还紧跟着再次缩进的一些菜单控件,他就成为一个子菜单的标题,在菜单标题以下缩进的个菜单控件就是该子菜单的菜单项。
常规下,只有菜单项才真正对应执行某些命令,菜单标题只是提示和组织子菜单。易语言收费版和免费版的区别
分隔条和访问键在菜单编辑器上提示很清楚,这里不再重复。
13.3常用事件
菜单控件是一个对象,与其它对象一样,它具有描述外观与行为的属性,在设计或运行时可以设置“标题”“可视”“选中”“禁止”属性。这些属性在菜
单编辑器中也可设置。
选中属性用来确认是否在一个菜单项前显示复选标记,取值真时显示,假时不现实。
菜单控件只包含一个事件,就是被选择事件,当鼠标或键盘选中该项菜单控件时,触发改事件。菜单事件编写代码与其它控件事件一样。
【例13-1】设计一个编辑框,并使用菜单来实现编辑框文本效果(加粗,倾斜,下划线)
详见13-1.e
13.4弹出式菜单
弹出式菜单是独立与菜单栏而显示在窗口上的浮动菜单,不同的子窗口或同一个子窗口的不同区域可以定义不同的弹出菜单因此弹出式菜单可以被成为上下文菜单,在WINDOWS中,可以通过点击鼠标右键来激活上下文菜单。
按照一下方法可以制作弹出式菜单。
1.创建弹出菜单一地步要创建菜单,方法与普通菜单一样。
2.如果希望该菜单不显示在菜单栏中,可以在设计时候让及可视为假。
3.为了显示指定的弹出式菜单,可以使用弹出菜单方法。
该方法语法如下
调用格式:〈无返回值〉对象.弹出菜单(菜单欲弹出的菜单,[整数型水平显示位置],[整数型垂直显示位置])-系统核心支持库->窗口英文名称:PopupMenu
用于在窗口上的当前鼠标位置或指定坐标位置显示弹出式菜单,如果调用对象为窗口组件,则自动使用其所在的窗口。本命令为初级对象成员命令。
参数<1>的名称为“欲弹出的菜单”,类型为“菜单(menu)”。指定菜单内必须包含有子菜单,且所处窗口必须与调用对象窗口一致。
参数<2>的名称为“水平显示位置”,类型为“整数型(int)”,可以被省略。单位为像素点,相对于屏幕左边。如果被省略,将自动使用当前鼠标位置。
参数<3>的名称为“垂直显示位置”,类型为“整数型(int)”,可以被省略。单位为像素点,相对于屏幕顶边。如果被省略,将自动使用当前鼠标位置。
【例13-2】编写程序在任意位置右键点击窗口,在窗口中间显示弹出菜单。
详见13-2.e
本章小结
菜单提供了管理命令的方便形式,用户容易到并执行这些命令。
菜单紧挨着窗口标题栏之下。可以包含多个菜单,使用菜单编辑器可以创建窗口的菜单,修改或删除菜单项。
当用户选项某一菜单就会引发菜单的被选择事件.
弹出式菜单使用弹出菜单方法打卡。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。