第1节 Mz_MenuGUI
在一些带有点阵LCD显示界面的产品当中,通常会涉及到一些菜单界面的应用,特别是一些带有设置功能的仪器仪表产品;结合自己的设计经验,设计了一个小巧精致的菜单GUI代码,以期将其应用在中小资源的MCU上,并充分考虑了接不同的MCU或LCD模块的扩展能力。
Mz_MenuGUI实际上就是将菜单显示、响应刷新的代码综合到一起,做成几个精致的通用函数,以减小菜单显示方面的代码量,为小资源的MCU应用打下基础;而菜单的确切控制还留给用户来做,但这里提供了参考的框架,使用时往里面填代码就可以了。另外,Mz_MenuGUI是基于前面所介绍的通用LCD驱动程序的,所以当要换用不同的LCD模块实现这样的简单菜单功能时,跟LCD驱动程序一样非常方便就可以实现移植了;下面了解一下Mz_MenuGUI的架构情况:
Mz_MenuGUI共有四个文件提供,其中只有一个Menu_GUI.c是正经八百的C语言函数代码,其它的三个基本上用于定义与外部声明用;而Menu_Resource.c当中是定义菜单资源的代码,其实也就是定义几个数组,里面的内容定义好菜单当中显示什么字符以及菜单字符的一些特性定义,这里的定义是要跟LCD的驱动程序当中的字库相关的定义有联系的,这点会在后面的代码介绍里面分析。
而菜单响应控制方面的代码需要用户自行编写,当然是在这里提供的架构参考的基础之上了,其实也就是做一个按键响应的switch分支,分别定义什么按键时菜单作什么样的更新操作;这点,我们提供了参考的架构,当然也可以省省事,直接拿来使用也可以。
Mz_MenuGUI做的菜单界面可以参考以下几张图片:
菜单显示效果(MzL02),当前活动菜单项处于第一项;
Mz_MenuGUI实际上就是将菜单显示、响应刷新的代码综合到一起,做成几个精致的通用函数,以减小菜单显示方面的代码量,为小资源的MCU应用打下基础;而菜单的确切控制还留给用户来做,但这里提供了参考的框架,使用时往里面填代码就可以了。另外,Mz_MenuGUI是基于前面所介绍的通用LCD驱动程序的,所以当要换用不同的LCD模块实现这样的简单菜单功能时,跟LCD驱动程序一样非常方便就可以实现移植了;下面了解一下Mz_MenuGUI的架构情况:

Mz_MenuGUI共有四个文件提供,其中只有一个Menu_GUI.c是正经八百的C语言函数代码,其它的三个基本上用于定义与外部声明用;而Menu_Resource.c当中是定义菜单资源的代码,其实也就是定义几个数组,里面的内容定义好菜单当中显示什么字符以及菜单字符的一些特性定义,这里的定义是要跟LCD的驱动程序当中的字库相关的定义有联系的,这点会在后面的代码介绍里面分析。
而菜单响应控制方面的代码需要用户自行编写,当然是在这里提供的架构参考的基础之上了,其实也就是做一个按键响应的switch分支,分别定义什么按键时菜单作什么样的更新操作;这点,我们提供了参考的架构,当然也可以省省事,直接拿来使用也可以。
Mz_MenuGUI做的菜单界面可以参考以下几张图片:

菜单显示效果(MzL02),当前活动菜单项处于第一项;

菜单显示效果(MzL02),当前活动菜单项处于第二项。


