创建VFP单级PAD通用菜单
需积分: 4 104 浏览量
更新于2024-09-28
收藏 4KB TXT 举报
"这篇文章主要介绍了如何在Visual FoxPro (VFP)中创建一个仅有一级的(PAD)通用菜单。这种菜单适用于不需多级结构的情况,通过一个名为MYMENU.PRG的小程序来调用,菜单项包括'新增'、'编辑'、'删除'、'筛选'、'导出'、'打印'和'退出',对应的程序模块也与这些名称相同。用户可以根据实际需求定制菜单内容。"
在VFP中创建一级菜单通常是通过设置系统菜单或者自定义菜单来实现的。在这个案例中,我们关注的是如何创建一个简单的通用菜单,它只需要一个PAD层次,无需多级嵌套。这个过程涉及到以下几个关键知识点:
1. **菜单设计**:菜单的设计通常包含了菜单项的文本和它们对应的操作。在这个例子中,菜单包含七个选项,分别是'新增'、'编辑'、'删除'、'筛选'、'导出'、'打印'和'退出'。每个菜单项都对应了一个具体的程序模块,用户可以通过选择这些菜单项来执行相应的功能。
2. **程序调用**:`MYMENU.PRG` 是调用菜单程序的名称。这个程序会负责创建并显示菜单,以及处理用户的选择。通过调用 `Unitarymenu()` 函数,我们可以实现一级菜单的创建和管理。
3. **函数定义**:`Unitarymenu()` 是创建和管理菜单的核心函数。该函数接收一个参数 `SCANSHUBIAO`,这个参数包含了菜单项的列表。函数内部首先检查参数是否为空,然后进行一系列处理,包括创建窗口、定位菜单、定义菜单项等。
4. **处理菜单项**:在函数中,`STORE 0 TO ZONGHE` 初始化一个变量来记录菜单项的数量。然后使用 `DO WHILE...DO UNTIL` 循环,通过 `AT()` 函数查找逗号来分割菜单项,并将它们存储到数组 `MYPAD` 中。这一步骤确保了所有菜单项都被正确地提取出来。
5. **设置系统菜单**:`SETSYSMENUSAVE` 保存当前的系统菜单状态,`SETSYSMENUTO` 关闭系统菜单,这使得我们可以自定义自己的菜单。在完成后,需要使用 `RELEASEMYPAD` 来释放之前创建的菜单资源。
6. **菜单项的创建和关联**:在循环内,通过 `DIMENSION MYPAD(ZONGHE+1)` 定义数组大小来容纳所有菜单项。接着,使用 `FPAD` 存储的菜单字符串和循环变量 `SPAD` 创建并设置每个菜单项。菜单项与相应的程序模块关联,当用户点击菜单项时,对应的程序会被执行。
7. **用户交互**:最后,函数通过 `READ` 命令等待用户操作,一旦用户完成选择并按下回车键,程序会释放窗口并返回。如果用户未输入任何参数,程序会创建一个提示窗口并显示错误信息。
通过这个例子,我们可以了解到在VFP中创建一级菜单的基本步骤,这对于开发简单易用的用户界面是非常实用的技巧。
2011-02-16 上传
2009-10-04 上传
2014-03-02 上传
2013-07-12 上传
2022-09-22 上传
2009-03-21 上传
CSDN_SHIYUAN
- 粉丝: 13
- 资源: 2
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建