当前位置: 首页 > news >正文

做外包网站眉山建网站

做外包网站,眉山建网站,兰州网站建设尚美,wdcp拒绝访问网站项目背景 本次的水墨屏幕项目需要做一个多级菜单的显示,所以写出来一起学习,本篇文章不单单适合于水墨屏,像0.96OLED屏幕也适用,区别就是修改显示函数。 设计思路 多级菜单的实现,一般有两种实现的方法 1.通过双向…

项目背景

本次的水墨屏幕项目需要做一个多级菜单的显示,所以写出来一起学习,本篇文章不单单适合于水墨屏,像0.96OLED屏幕也适用,区别就是修改显示函数。
在这里插入图片描述

设计思路

多级菜单的实现,一般有两种实现的方法
1.通过双向链表实现
2.通过数组查表实现
两种方法的思路都是把所有的界面连接在同一个连接中,上级菜单跳转下级菜单。
数组查表比较简单,此次的项目就用数组查表的方法。

实现代码

1.确定好菜单的逻辑,也就是菜单的显示关系。
在这里插入图片描述

在开机的时候,显示开机界面,然后按下任意按键,就跳转到菜单显示,可以通过上按键,下按键和确认按键选择相对应的显示。
2.代码逻辑实现。
首先定义一个结构体,分别为上按键,下按键和确认按键,当前页面索引号,当前页面索引号执行的函数。

typedef struct
{uchar current;//当前页面索引号uchar up;     //向上翻索引号uchar down;   //向下翻索引号uchar enter;  //确认索引号void (*current_operation)();  //当前页面索引号执行的函数,指针函数
} key_table;

数组方法实现多级菜单的原理就是把每一个显示界面编上一个号码,称为当前页面索引号。比如开机显示界面为0,菜单显示为1。每当选择到一个号码,就去运行前页面索引号函数,也就是显示相对应的界面。例如下面的数组key_table table【】,当选择到0编码,就去运行(*fun_0)这个指针函数,把要显示的开机界面写在(*fun_0)就可以。

key_table table[30]=
{//第0层{0,1,1,1,(*fun_0)},//开机界面//第1层{1,2,2, 2,(*fun_a1)},//主菜单界面{2,6,3, 7,(*fun_b1)},//显示WIFI下划线{3,2,4, 8,(*fun_c1)},//显示万年历下划线{4,3,5, 9,(*fun_d1)},//显示时钟下划线{5,4,6, 10,(*fun_e1)},//显示小说下划线{6,5,2, 0,(*fun_f1)},//显示返回下划线//第2层{7,7,7,1,(*fun_a21)},	//连接WIFI{8,8,8,1,(*fun_b21)},	//显示时间{9,9,9,1,(*fun_c21)},	//倒计时};
//开机界面
void fun_0()
{u2_printf("hello world\r\n");Refresh();//刷新屏幕EPD_ShowString(125,55,"Hello",24,BLACK);	EPD_PartDisplay(Image_BW);delay_ms(20);
}

那么是怎么实现上级菜单跳转到下级菜单的尼,比如初始显示欢迎界面的状态下,按下不同按键后,通过数组查表,确定要跳转到的索引号,然后根据索引号,通过函数指针执行索引号对应的显示函数,即实现了一次页面切换。然后,就是在新的页面状态,收到下一个按钮指令,再切换到下一个显示状态。
我们看下key_table table[30]数组里面的元素。

	 //第0层{0,1,1,1,(*fun_0)},//开机界面//第1层{1,2,2, 2,(*fun_a1)},//主菜单界面{2,6,3, 7,(*fun_b1)},//显示WIFI下划线{3,2,4, 8,(*fun_c1)},//显示万年历下划线{4,3,5, 9,(*fun_d1)},//显示时钟下划线{5,4,6, 10,(*fun_e1)},//显示小说下划线{6,5,2, 0,(*fun_f1)},//显示返回下划线//第2层{7,7,7,1,(*fun_a21)},	//连接WIFI{8,8,8,1,(*fun_b21)},	//显示时间{9,9,9,1,(*fun_c21)},	//倒计时

元素是一开始我们定义好的结构体,依次为当前页面索引号,上按键,下按键,确认按键,执行的函数。当我们在索引号1的主菜单界面按上按键,下按键,确认按键,都会跳转到索引号2的显示WIFI下划线界面,然后按上按键,就去跳转到索引号6的显示返回下划线界面,或者按下按键跳转到索引号3的显示WIFI下划线界面,按确认键就跳转到第2层的连接WIFI。在索引号7的连接WIFI界面中,按上按键和下按键都是跳到当前索引号7,从而显示按键按下不跳其他界面的功能,只有按确认按键才会跳到当前索引号1的主菜单界面。
通过分析,不难发现,这些数组在空间上的关系:

在这里插入图片描述

菜单界面的切换。比如初始显示欢迎界面的状态下,按下不同按键后,通过数组查表,确定要跳转到的索引号,然后根据索引号,通过函数指针执行索引号对应的显示函数,即实现了一次页面切换。
然后,就是在新的页面状态,收到下一个按钮指令,再切换到下一个显示状态。

效果可以看看视频

多级菜单演示

代码链接:https://pan.baidu.com/s/1XddINn6Qos5-4r5XtIuwXQ?pwd=z754
提取码:z754

http://www.yayakq.cn/news/772439/

相关文章:

  • 电子商务类网站模板网站会更改吗
  • 网站优化吧如何用ps做网站ui
  • 做网站的公司都有哪些公司注册如何网上核名
  • 网站闪图怎么做的工程建设信息都在哪个网站发布
  • 三网合一网站建设百科建设项目竣工验收公示网站
  • 怎样 建设电子商务网站网站用动态图片做背景怎么写
  • 做暧免费网站wordpress 去掉头部栏目
  • 徐州建设工程交易网站温州网站推广效果好
  • 华夏名网修改网站信息提供网站建设的理由
  • 百度蜘蛛抓取网站安徽网新科技有限公司怎么样
  • 简历网站后怎样才能被谷歌 百度收录吗网站一键收录
  • 深圳网站设计公司哪家专业做网站头片的高清图
  • 网站建设就业方向包车哪个网站做的最好
  • 门户网站建设 总结net网站开发 兼职
  • 网站建设方案备案上海人才市场招聘网
  • 电子商务网站的建设与运营怎么管理wordpress
  • 如何自己做网站腾讯中国十大搜索引擎网站
  • 网站优化软件下载鞍山网站建设公司
  • 石家庄网站建设推广电话北京三里屯
  • 品牌网站建设哪个好做搜狗手机网站快速
  • 菏泽网站建设谁最出名酒店设计公司排名前十强
  • 中山网站搜索排名网站怎么做的精致一点
  • 传媒公司网站模板网站结构形式有哪些
  • 做网站市场价格多少钱SEO如何建设网站
  • 山西城乡与住房建设厅网站注册个人网站域名top
  • php html5企业网站源码微山网站建设
  • 如何建立公司网站模块织梦cms一键更新网站无法使用
  • 扬州网站建设建设网站空间选择
  • 广西城市建设学校学生网站北京网站开发建设
  • 网站更改了资料 百度什么时侯来抓取东方购物网上商城