第七章 自定义菜单与工具栏_第1页
第七章 自定义菜单与工具栏_第2页
第七章 自定义菜单与工具栏_第3页
第七章 自定义菜单与工具栏_第4页
第七章 自定义菜单与工具栏_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第七章第七章 自定义菜单自定义菜单 作为应用程序最常用的功能组织形式 菜单设计在程序开发中是必不可少的 Visual FoxPro 支持两种类型的菜单 普通菜单和快捷菜单 普通菜单用来列出整 个程序的各种功能 用户通过点击各个菜单项实现对相应程序功能的调用 普通菜 单可以单独运行 也以可附着在表单窗口上成为 SDI 单文档界面 菜单 快捷菜 单通常在单击鼠标右键时出现 它列出了与当前对象密切相关的操作选项 用户通 过选择其中的菜单项快速完成相应的操作 创建菜单后将生成两种类型的文件 1 菜单定义文件 该文件在编辑菜单项时产生 其文件扩展名为 mnx 2 菜单程序文件 该文件由菜单定义文件生成的可执行的菜单程序文件 其文件扩展名 mpr 7 1 菜单规划菜单规划 应用程序的实用性一定程度上取决于菜单系统的质量 在设计菜单系统时 必须考虑下列准则 1 按照用户所要执行的任务组织系统 而不要按应用程序的层次组织系统 只要查看菜单和菜单项 用户就可对应用程序的组织方法有一个感性认识 因 此 要设计好这些菜单和菜单项 必须了解用户思考问题和完成任务的方法 2 合理排列菜单组和菜单项 给每个菜单组 项 定义一个有意义的菜单 标题 按照菜单项的使用频率 逻辑顺序或字母顺序组织菜单组 项 当菜单项较 多时 按字母顺序排列便于查看菜单项 3 在菜单项的逻辑组之间放置分隔线 增强菜单项的可读性 4 将每组菜单项的数目限制在一个屏幕之内 如果菜单项的数目超过了一屏幕 则应为其中的一些菜单项创建子菜单 5 为菜单和菜单项设置访问键或键盘快捷键 6 使用能够准确描述菜单项的文字 描述菜单项时 应使用日常用语而非计算机术语 同时 说明选择一个菜单项 产生的效果时 应使用简单 生动的动词 而不要将名词当作动词使用 另外 用 相似语句结构来说明菜单项 保持风格的一致性 7 在菜单项中混合使用大小写字母 只在特别强调时才使用大写字母 2 7 2 菜单设计器菜单设计器 Visual FoxPro 系统提供了 菜单设计器 来创建 定制菜单系统 为用户提供 了一个友好的人机交互界面 使用 菜单设计器 可方便地创建菜单 菜单项及其 子菜单 并对菜单项进行分组等 有三种方式可以打开 菜单设计器 对话框 1 菜单方式 选菜单 文件 F 新建 N 在 新建 对话框中选 菜单 再单击 新 建文件 N 按钮 如图 7 1 所示 此时将打开如图 7 2 所示的 新建菜单 对话框 2 项目管理器方式 在 项目管理器 的 其 他 选项卡中选择 菜单 选项 再单击 新建 按钮 打开如图 7 2 所示的 新建菜单 对话框 3 命令方式 在命令窗口中输入以下命令 打 开如图 7 2 所示的 新建菜单 对话框 CREATE MENU 或 MODIFY MENU MODIFY 命令中的为菜单定义文件 其 扩展名为 mnx 可以缺省 若为新文件 则新建菜单文件 否则打开已经存在的菜单 在图 7 2 的对话框中根据实际需要选择 菜单 或 快捷菜单 便可打开 菜单设计器 这里选 菜单 如图 7 3 所示 由图 7 3 可见 菜单设计器的窗口组成如下 1 菜单名称 栏 图 7 1 新建 对话框 图 7 2 新建菜单 对话框 图 7 3 菜单设计器 3 指定菜单项的名称 即程序运行时显示的菜单标题 并非内部名字 该栏左侧 有一个 移动指示器 Mover 用于改变当前菜单项在菜单列表中的位置 为方便操作 在使用菜单时 可以使用菜单项的访问键 设置菜单项访问键的 方法是 在要作为访问键的字符前加上 字符窜 如在 菜单名称 栏中输入菜单 项名称为 数据浏览 B 那么字母 B 就是该菜单项的访问键 菜单运行时 按 Alt B 便可选定该菜单项 为增强可读性 可使用分隔线将内容相关 功能相近的菜单项分隔成组 例如 图 7 4 是 Visual FoxPro 的 编辑 菜单 撤消 及 重做 分为一组 剪切 复制 粘贴 选择性粘贴 和 清除 分为一组 Visual FoxPro 系统在两组 菜单项之间插入一条水平的分隔线 要对菜单项进行分组 操作方法是 在 菜单名称 栏中 键入 便 可以创建一条分隔线 拖动 提示 符左侧的按钮 可将分隔线移动到所需 的位置 2 结果 栏 该栏用于指定当该菜单项被选中时 产生的动作 它有 4 个选项 包括 子菜单 Submenu 选择此 选项 表示该菜单项包含一个子菜单 当菜单运行时 若用户选取该菜单项将 弹出它的子菜单 选择此项后 结果列 右侧将出现一 编辑 按钮 单击此按 钮将进入下一级菜单设计窗口 命令 Command 选择此选项 列表框的右侧将出现一个输入框 用于 输入一条具体的命令 当用户选择该菜单项时 执行该命令 过程 Procedure 用于定义一个与菜 单项相关联的过程 当用户激活该菜单项时将 执行此过程代码 选择此项时 其右侧将出现 一个 创建 按钮 单击此按钮将启动过程编 辑窗口 用于输入和编辑过程代码 若过程代 码已经存在 则列表框右侧出现的将是 编辑 按钮 而不是 创建 按钮 填充名称 Pad Name 选择此选项 列表框的右侧将出现一个输入框 用于输入自 定义的菜单项内部名字 此名字的命名规则与 图 7 5 提示选项 对话框 图 7 4 菜单项分组结果 4 Visual FoxPro 中变量的命名规则相同 3 选项 栏 单击该栏按钮将弹出 提示选项 对话框 如图 7 5 所示 该对话框用于设置 菜单项的各种高级属性 如快捷方式 菜单项说明信息等 当在对话框中定义了菜 单项的属性后 按钮上就出现符号 4 菜单级 栏 显示当前菜单项所处的菜单级别 提供用户选择所要处理 的菜单或子菜单 5 预览 按钮 预览正在设计的菜单 可检查菜单的层次关系及提示等是 否正确 6 插入 按钮 在当前菜单项的前面插入一个新的菜单项 7 删除 按钮 删除当前的菜单项 7 3 创建普通菜单创建普通菜单 Visual FoxPro 的菜单有两种 普通菜单和快捷菜单 两种菜单的创建过程非常 相似 基本步骤为 1 规划好菜单系统之后 使用以上介绍的办法打开菜单设计器 2 在菜单设计器中创建 编辑各菜单项 生成菜单定义文件 扩展名为 MNX 3 选菜单 菜单 M 生成 G 生成菜单的可执行文件 扩展 名为 MPR 4 运行菜单程序 菜单的新建有两种选择模式 使用 快速菜单 从已有的 Visual FoxPro 菜单系统定制 自定义菜单系统 7 3 1 利用利用 快速菜单快速菜单 创建创建菜单菜单 利用 快速菜单 创建菜单系统的操作步骤如下 1 打开菜单设计器 2 从 菜单 M 菜单中 选择 快速菜单 Q 命令 3 通过添加或更改菜单项定制菜单系统 拖动移动指示器可以改变菜单栏 上各菜单项的位置 快速菜单的界面如图 7 6 所示 点击 编辑 按钮可编辑相应的子菜单项 如 图 7 7 所示 单击选项按钮则打开相应的 提示选项 对话框 如图 7 8 5 7 2 2 创建自定义菜单系统创建自定义菜单系统 快速菜单 的创建虽然简单快捷 但它是在 Visual FoxPro 系统菜单的基础 图 7 6 快速菜单 界面 图 7 7 子菜单项 图 7 8 提示选项 对话框 6 上进行增删的 其功能往往不符合我们的实际需求 自定义菜单是用户根据系统的 需要在空白的菜单设计器上自行设计的下拉菜单 自定义菜单的 结果 项除从菜 单设计器提供的 4 个选项子菜单 命令 填充名称 过程进行选择外 还可以利用 菜单设计器上提供的 插入栏 按钮打开 插入系统菜单栏 对话框窗口 从中选 择 Visual FoxPro 系统内置的菜单项 如图 7 9 所示 例例 7 1 设计学生管理系统的菜单系统 其主菜单包括 文件 编辑 数据 查询 数据浏览 数据维护 打印 退出 等菜单项 保存的文件名 为 STU MNX 操作步骤如下 1 利用 7 2 节介绍的三种办法中的任意一种新建一菜单文件 打开如图 7 3 所示的 菜单设计器 窗口 2 在 菜单名称 中输入本例中的菜单项名称 如图 7 10 所示 3 设计 文件 F 和 编辑 E 菜单 图 7 10 STU 主菜单 图 7 9 插入系统菜单栏 窗口 7 在 菜单设计器 的菜单名称中输入 文件 F 和 编辑 E 两 个菜单项后 分别单击 子菜单 项旁边的 创建 按钮 进入下一级子菜单的设 计 单击 菜单设计器 上的 插入栏 B 按钮 打开如图 7 9 所示的 插入系统菜单栏 对话框 为 文件 F 菜单添加 关闭 保存 和 另 存为 菜单项 仿照 的操作 为 编辑 E 菜单添加 撤销 重做 还原 剪切 复制 粘贴 菜单项 并创建分隔线 效果如图 7 11 和 7 12 所示 4 设计 数据查询 菜单项 单击 子菜单 项右边的 创建 按钮 进 入下一级子菜单的设计 为 数据查询 项添加三个子菜单项 用于实现 查询学 生档案 查询学生成绩 查询选课情况 的功能 效果如图 7 13 所示 图 7 11 文件 项子菜单 图 7 12 编辑 项子菜单 7 13 数据查询子菜单 8 各菜单项的命令代码如下 do form dacx scx 打开档案查询表单 dacx scx do form cjcx scx 打开成绩查询表单 cjcx scx do form xkcx scx 打开选课查询表单 xkcx scx 5 设计 数据浏览 菜单项 单击 子菜单 项旁边的 创建 按钮 进 入下一级子菜单的设计 数据浏览 项包括 学生档案 学生成绩 选课情 况 三个子菜单项 效果如图 7 14 所示 各菜单项的命令代码如下 do form da scx 打开档案浏览表单 da scx do form xk scx 打开选课浏览表单 xk scx 学生成绩 菜单项结果采用 过程 其具体代码如下 USE xscj dbf 打开学生成绩表 brow 浏览学生成绩表 6 设计 退出 菜单项的子菜单项 退出 菜单有 还原系统菜单 和 退出系统 两个子菜单 分别用相应的命令完成 具体代码如下 set sysmenu to default 返回系统菜单 do form quit scx 打开退出表单 quit scx 7 保存菜单文件 从 Visual FoxPro 系统菜单 文件 F 中选择 保存 S 或按 Ctrl W 组合键 打开 另存为 对话框窗口 输入 STU 文件名后保存菜 单文件 注意 此处保存的文件类型为菜单定义文件 其扩展名为 MNX 本例菜单 文件完整的名称为 STU MNX 8 生成可执行的菜单程序文件 完成菜单定义文件保存后 从 Visual FoxPro 系统菜单 菜单 M 中选择 生成 G 生成可执行的菜单程序文 件 STU MPR 如图 7 16 所示 9 运行菜单程序 在 Visual FoxPro 命令窗口中输入以下命令运行菜单程序 图图 7 14 数据浏览子菜单数据浏览子菜单 图 7 15 退出子菜单 9 Do D xsgl stu mpr 运行菜单程序 菜单运行结果如图 7 17 所示 在实际应用中 程序设计总是在使用过程中不断调试 不断改进才达到最佳效 果 如果要修改以上的菜单文件 可重复以上的设计步骤 并重新保存 重新生成 重新应用 7 4 创建快捷菜单创建快捷菜单 快捷菜单是应用程序中常用的操作方式 把与当前操作对象密切相关的命令用 菜单的方式组织起来 用户在使用时只需点击鼠标右键 从列举的菜单项中直接选 取就可以完成相应的操作 给程序操作提供了极大的方便 利用 Visual FoxPro 系统提供的快捷菜单设计器可以很方便地定义和设计快捷 菜单 快捷菜单的设计方法和过程与设计普通菜单类似 具体步骤为 1 打开快捷菜单设计器 在图 7 2 新建菜单 对话框中选择 快捷菜单 按钮 便可打开快捷菜单设计器 2 定义菜单项 根据设计要求按照上面普通菜单的定义和编辑方法进行各 菜单项的设计 保存生成扩展名为 MNX 的菜单定义文件 3 生成可执行的菜单程序文件 从 Visual FoxPro 系统菜单 菜单 M 中选择 生成 G 生成可执行的菜单程序文件 其扩展名为 MPR 4 运行菜单程序 快捷菜单的运行方法与普通菜单一样 采用下面命令执 行菜单程序 DO 图 7 16 生成菜单 图 7 17 菜单运行结果 10 按照用户的操作习惯 一般快捷菜单的调用方式都是采用单击鼠标右键的方法 来实现 在程序设计过程中我们应该用 RightClick 事件来调用快捷菜单程序 例例 7 2 创建快捷菜单 kj mnx 为表单 welcome scx 添加快捷菜单 在程序运行 时通过单击鼠标右键弹出的菜单项改变表 单的背景色或标签文字的字体格式 效果 如图 7 18 所示 菜单文件名为 kj mnx 操作步骤如下 1 打开 快捷菜单设计器 设计 如图 7 19 所示的快捷菜单 2 设计 背景颜色 和 文字修 饰 菜单项 分别点击 背景颜色 和 文字修饰 菜单项右边的按钮 创建 进 入下一级菜单的编辑 具体设置如表 7 1 和表 7 2 所示 表 7 1 背景颜色 子菜单设置 菜单名称结果选项说明 红色背景命令obj backcolor rgb 255 0 0 设置红色背景 蓝色背景命令obj backcolor rgb 0 0 255 设置蓝色背景 黄色背景命令obj backcolor rgb 255 255 128 设置黄色背景 子菜单分隔线 还原命令obj backcolor rgb 235 233 237 还原背景颜色 表 7 2 文字修饰 子菜单设置 菜单名称结果选项说明 黑体命令obj label1 fontname 黑体 设置黑体格式 楷体命令obj label1 fontname 楷体 GB2312 设置楷体格式 加粗 倾斜过程obj label1 fontbold t obj label1 fontitalic t 设置加粗 倾斜 子菜单分隔线 还原过程obj label1 fontname 宋体 obj label1 fontbold f 还原文字格式 图 7 19 设计快捷菜单 图 7 18 快捷菜 单 11 obj label1 fontitalic f 3 从 显示 菜单中选择 常规选项 命令 打开 常规选项 对话框窗 口 在快捷菜单的 设置 S 代码窗口中添加命令如下 PARAMETERS obj 在快捷菜单的 清理 C 代码窗口中添加菜单清除命令 以便在选择 执行 菜单命令后能及时清除菜单 释放其所占用的内存空间 命令如下 Release popups kj 4 以 KJ MNX 为文件名保存菜单文件 5 从 Visual FoxPro 系统菜单 菜单 M 中选择 生成 G 生成 可执行的菜单程序文件 KJ MPR 6 打开表单 welcome scx 在表单的 RightClick 事件中添加调用快捷菜单程 序的代码 让程序运行时单击鼠标右键弹出设计的快捷菜单 代码如下 DO KJ MPR 执行快捷菜单程序文件 7 保存 运行表单 运行结果如图 7 18 所示 用户可以根据快捷菜单适当 更改表单的背景颜色和文字格式 7 5 创建创建 SDI 菜单菜单 菜单除了单独运行外 也可附着在顶层表单窗口上成为 SDI 菜单 例例 7 3 把学生管理系统的菜单系统 stu mpr 以 SDI 菜单的形式显示在表单 welcome scx 上 效果如图 7 22 所示 菜单系统 stu mpr 另存为 sdi stu mpr 表单 welcome scx 另存为 sdi welcome scx 操作步骤如下 1 打开学生管理系统的菜单系统定义文件 stu mnx 从 Visual FoxPro 系统 菜单 文件 F 中选择 另存为 A 以 sdi stu mnx 为文件名另存到磁盘 中 2 选择 Visual FoxPro 系统菜单 显示 V 中 常规选项 G 菜单项 打开 常规选项 对话框 在该对话框中勾选 顶层表单 复选框 如图 7 20 所 图 7 21 属性窗口图 7 20 常规选项 12 示 3 保存菜单定义文件 sdi stu mnx 并生成可执行菜单程序文件 sdi stu mpr 4 打开表单 welcome scx 从 Visual FoxPro 系统菜单 文件 F 中选择 另存为 A 以 sdi welcome scx 为文件名另存到磁盘中 5 在属性窗口中设置 ShowWindow 属性为 2 作为顶层表单 使其成为顶 层表单 如图 7 21 所示 6 添加调用菜单代码 双击表单 在表单的 Init 事件中添加如下代码 DO sdi stu mpr WITH THIS t 调用菜单 并指定菜单的内部名 7 添加清除菜单的代码 在表单的 Destroy 事件中加入清除菜单的命令 使 表单关闭时同时从内存中清除菜单 释放其所占用的内存空间 代码如下 Release Menu sdi EXTENDED 清除菜单 释放内存空间 8 保存 运行表单 运行效果如图 7 22 所示 7 6 本章习题 一 简答题 1 菜单和工具栏各有什么作用 各由什么组成 2 什么是下拉菜单和快捷菜单 各有什么别名 3 创建菜单要经过那些步骤 4 创建工具栏要经过那些步骤 5 如何快速创建菜单 6 设计菜单的基本原则有哪些 7 如何组织菜单系统 8 在 VFP 菜单栏上 何时出现与消失 菜单 项 图 7 22 顶层表单上的 SDI 菜单 13 二 填空题 1 通常 用户界面可以是 也可以是 2 菜单文件的扩展名是 菜单程序的扩展名是 3 菜单是供用户选择程序的功能或命令的 4 菜单栏显示 菜单 下拉式菜单显示 菜单 5 快捷菜单是在 时弹出的菜单 6 可包括主菜单 子菜单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论