多级菜单框架(C实现)
发布日期:2021-05-19 23:44:22 浏览次数:19 分类:精选文章

本文共 1999 字,大约阅读时间需要 6 分钟。

多级菜单框架的实现

在进行OLED显示开发时,传统的索引菜单实现虽然功能简单,但在修改和扩展上存在诸多不便。本文将介绍一种基于C语言实现的多级菜单框架,该框架设计初 Classic menú multip.Multilevel菜单实现

为了实现更加易于修改和扩展的多级菜单框架,本文设计并实现了一个基于C语言的菜单系统,该系统适用于OLED显示设备。菜单框架的主要特点包括支持多页菜单,每页可以有多个选项,并且支持字符串、小数和数字等可调整型内容的设置。

选择框架

本框架的主要文件包括:

CFOtra_C代码主要包含实现细节

..

系统的主要头文件只包含类型和函数声明,实现部分位于C文件中。

#ifndef _PARALLEL_MENU_H
#define _PARALLEL_MENU_H
#include "common.h"
#define MAX_NUM_OF_PAGE 24
typedef enum {
keyup,
keydown,
keyleft,
keyright,
keyenter
} KeyValue;
typedef enum {
firstline,
secondline,
thirdline,
fourthline
} OptPosition;
typedef enum {
strings,
number,
smallnum,
adjustblestr,
adjustablenum,
adjustblesmall
} Type;
struct _SmallNum {....

该框架的主要结构包括:

  • 页面结构 (_Page):每个页面包含选项数目、选项数组以及当前选项索引。
  • 选项结构 (_Option):每个选项包含标识类型、名称、内容类型以及内容。
  • 内容类型(optcontent):支持字符串、数字和小数型变量,通过可调整接口进行修改。
  • 键处理:支持上下左右和确认键,提供一种灵活的导航方式。
  • 内部函数:包括设置页面、设置选项内容、处理键盘事件、刷新显示等。
  • 主要功能实现

  • 页码设置:通过SetPageNum函数设置总的页码数。
  • 页面创建:SetPage函数用于创建新的页面并设置选项内容。
  • 选项内容设置:SetOptContent函数根据不同类型的内容进行设置。
  • 页面处理:EndPageSet函数用于刷新当前页面的显示。
  • 导航处理:通过process_keyaction和process_optchange函数完成键盘事件处理和选项切换。
  • 内容调整:支持对字符串、小数和数字类型内容进行增减操作。
  • 使用示例

    以下是基于本框架的一个典型应用示例:

    #include "parallelmenu.h"
    #include "include.h"
    #include
    ...
    // 示例使用示例
    SetPageNum(4); // 设置总页面数为4
    SetPage(1,3,"S3010-PID"); // 第一页设置3个选项
    SetOptContent(5,"S-P",&SP); // 选项类型设置为5(小数)
    SetOptContent(5,"S-I",&SI);
    SetOptContent(5,"S-D",&SD);
    SetPage(2,3,"Motor-PID"); // 第二页设置3个选项
    SetOptContent(5,"M-P",&MP);
    SetOptContent(5,"M-I",&MI);
    SetOptContent(5,"M-D",&MD);
    SetPage(3,1,"Trg-Speed"); // 第三页设置1个选项
    SetOptContent(4,"Trg-V",&speed); // 选项类型设置为4(数字)
    SetPage(4,1,"YuZhi"); // 第四页设置1个选项
    SetOptContent(4,"yuzhi",&yuzhi);
    EndPageSet(); // 刷新菜单显示

    系统特点

    该框架具有以下主要特点:

  • 跨平台兼容性:基于标准C语言实现,适用于多种开发平台。
  • 灵活性高:支持多种内容类型以及多种导航方式。
  • 易于维护:模块 化设计,易于扩展和修改。
  • 优化性能:通过减少不必要的操作和优化内存使用,提高了系统运行效率。
  • 未来优化方向

  • 内存管理优化:增加内存释放函数,避免内存泄漏。
  • 多线程支持:优化部分功能,使其支持多线程环境。
  • 缩小依赖库:减少对外部库的依赖,提高系统的独立性。
  • 用户体验改进:增加更多预设样例,提供更完善的文档支持。
  • 以上是一个完整的C语言多级菜单框架实现介绍。通过不断优化和改进,该框架将能够满足更多复杂需求,适合在嵌入式开发中使用。

    上一篇:wxwidgets自定义事件+调试
    下一篇:图形界面与具体实现的分离(面向过程->面向对象)

    发表评论

    最新留言

    做的很好,不错不错
    [***.243.131.199]2025年05月08日 17时18分11秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章