广州周立功单片机发展有限公司Te:(020)38730916387309173873097638730977Fax:38730925 ZLG/GUI图形用户界面 11概述 GUI为 Graphics User Interface的简写,即图形用户界面,这是用于提高人机交互友好 性、易操作性的计算机程序,它是建立在计算机图形学基础上的产物。图形用户界面是当今 计算机技术的重大成就之一,它极大地方便了非专业用户的使用,人们不再需要死记硬背大 量的命令,而是通过窗口、菜单方便地进行操作 随着嵌入式系统的日益发展,32位嵌入式处理器及图形显示设备的广泛应用,目标产 品对GUI的需求越来越多。由于嵌入式系统的资源有限,所以对GUI的要求是可载剪的, 高速度的。ZLG/GUI是占用资源小、使用方便的嵌入式系统简易的图形用户界面软件。 ZLG/GUⅠ提供了最基本的画点、线、圆形、圆弧、椭圆形、矩形、正方形、填充等功能, 较高级的接口功能有ASCI显示、汉字显示、图标显示、窗口、菜单等,支持单色、灰度、 伪彩、真彩等图形显示设备。 12 ZLG/GU的文件 在这节里将统一介绍 ZLG/GUI的接口函数及可用资源。接口函数是按其功能分类的, 并且分别编写到不同的文件中,如下所示 基本图形操作函数 GUI BASE. C 显示颜色管理函数 GUI STOCKCC 颜色转换操作函数 CONVERTCOLOR C 5×7ASCI码字库及显示函数 FONT5 7C x8ASCI码字库及显示函数 FonTs 8.C 24×32数字库及显示函数 FONT24 32C 单色图形及汉字显示函数 LOADBITC 图标菜单、下拉菜单操作函数 MENU C 窗口操作函数 WINDOW. C 其它重要文件说明如下: CONFIG.H-一用于声明常用宏,包含所有项目所用的头文件。(方便项目的管理) GUI CONFIG.H-一用于配置 ZLG/GUI。(用于裁剪 ZLG/GUI) FONT MACRO.H一一定义字节点阵宏。(用于定义字体点阵数据) 13 ZLG/GU的配置 在ZLG/GUI的 GUI CONFIG.H文件中进行 ZLG/GUI的配置,功能配置说明如下: ● GUI Linewith EN 画有宽度的直线函数 GUI Line witho使能控制,设置为1时函数有效,为0或其它值时 函数禁止 ● GUI Circle en 画圆函数 GUI Circled、 GUI CircleFillo使能控制,设置为1时函数有效,为0或其它 值时函数禁止。 ● GUI EllipseX EN 画椭圆函数 GUI Ellipse(、 GUI EllipseFillo使能控制,设置为1时函数有效,为0或 其它值时函数禁止。 ● guI Floodfill eN
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925 - 1 - ZLG/GUI 图形用户界面 1.1 概述 GUI 为 Graphics User Interface 的简写 即图形用户界面 这是用于提高人机交互友好 性 易操作性的计算机程序 它是建立在计算机图形学基础上的产物 图形用户界面是当今 计算机技术的重大成就之一 它极大地方便了非专业用户的使用 人们不再需要死记硬背大 量的命令 而是通过窗口 菜单方便地进行操作 随着嵌入式系统的日益发展 32 位嵌入式处理器及图形显示设备的广泛应用 目标产 品对 GUI 的需求越来越多 由于嵌入式系统的资源有限 所以对 GUI 的要求是可载剪的 高速度的 ZLG/GUI 是占用资源小 使用方便的嵌入式系统简易的图形用户界面软件 ZLG/GUI 提供了最基本的画点 线 圆形 圆弧 椭圆形 矩形 正方形 填充等功能 较高级的接口功能有 ASCII 显示 汉字显示 图标显示 窗口 菜单等 支持单色 灰度 伪彩 真彩等图形显示设备 1.2 ZLG/GUI 的文件 在这节里将统一介绍 ZLG/GUI 的接口函数及可用资源 接口函数是按其功能分类的 并且分别编写到不同的文件中 如下所示 基本图形操作函数 GUI_BASE.C 显示颜色管理函数 GUI_STOCKC.C 颜色转换操作函数 CONVERTCOLOR.C 5×7ASCII 码字库及显示函数 FONT5_7.C 8×8ASCII 码字库及显示函数 FONT8_8.C 24×32 数字库及显示函数 FONT24_32.C 单色图形及汉字显示函数 LOADBIT.C 图标菜单 下拉菜单操作函数 MENU.C 窗口操作函数 WINDOW.C 其它重要文件说明如下 CONFIG.H 用于声明常用宏 包含所有项目所用的头文件 (方便项目的管理) GUI_CONFIG.H 用于配置 ZLG/GUI (用于裁剪 ZLG/GUI) FONT_MACRO.H 定义字节点阵宏 (用于定义字体点阵数据) 1.3 ZLG/GUI 的配置 在 ZLG/GUI 的 GUI_CONFIG.H 文件中进行 ZLG/GUI 的配置 功能配置说明如下 l GUI_LineWith_EN 画有宽度的直线函数 GUI_LineWith()使能控制 设置为 1 时函数有效 为 0 或其它值时 函数禁止 l GUI_CircleX_EN 画圆函数 GUI_Circle() GUI_CircleFill()使能控制 设置为 1 时函数有效 为 0 或其它 值时函数禁止 l GUI_EllipseX_EN 画椭圆函数 GUI_Ellipse() GUI_EllipseFill()使能控制 设置为 1 时函数有效 为 0 或 其它值时函数禁止 l GUI_FloodFill_EN
广州周立功单片机发展有限公司Te:(020)38730916387309173873097638730977Fax:38730925 填充函数 GUI FloodFillO使能控制,设置为1时函数有效,为0或其它值时函数禁止。 当使用填充函数时,可以定义 DOWNP N、UPPN宏来设置向上及向下折点个数,这两个 宏用于定义保存向上及向下折点数据的数组大小。 ● GUI ArcX EN 画圆弧函数 GUI Arc4)、 GUI Arc使能控制,设置为1时函数有效,为0或其它值时 函数禁止 ● GUI Pieslice EN 扇形函数 GUI PiesliceO使能控制,设置为1时函数有效,为0或其它值时函数禁止。 ● GUI WINDOW EN 窗口管理函数使能控制,设置为1时函数有效,为0或其它值时函数禁止。窗口管理函 数如 GUI Windows Draw(、 GUI WindowsHideo、 GuI Windows clr0等。由于窗口管理函数 使用到5×7ASCI字体显示,所以必需同时设置FONT5x7EN为1。 ● GUI Menulco en 图标菜单操作函数使能控制,设置为1时函数有效,为0或其它值时函数禁止。图标菜 单操作函数如 GUI MenulcoDrawO、 GUI Button49x140、 GUI Button OKO、 GUI Button Cancleo、 GUI Button OK1O、 GUI Button Cancle1o等 ● GUI Menudown en 下拉菜单操作函数使能控制,设置为1时函数有效,为0或其它值时函数禁止。下拉菜 单操作函数如 GUI MMenuDrawO、 GUI MMenuSelecto、 GUI MMenuNSelect0 GUI SMenuDraw O、 GUI SMenuSelect O、 GUI SMenuHide o等。 ●FONT5x7EN 5×7ASCI码字库及显示函数使能控制,设置为1时函数有效,为0或其它值时函数禁 止。5×7ASCI码字符显示函数如 GUI PutCharO、 GUI PutStringo、 GUI PutNoStr(等。 ●FONT8x8EN 8×8ASCⅢ码字库及显示函数使能控制,设置为1时函数有效,为0或其它值时函数禁 止。8×8ASCI码字符显示函数如 GUI PutChar880、 GUI PutString880、 GUI PutNoStra88 O等 FONT24X32 EN 24×32数字库及显示函数使能控制,设置为1时函数有效,为0或其它值时函数禁止。 24×32数字字符显示函数如 GUI Putchar24_320 ● GUI PutHZ EN 汉字显示函数 GUI PutHZO使能控制,设置为1时函数有效,为0或其它值时函数禁止。 ● GUI LoadPic EN 单色图形显示函数使能控制,设置为1时函数有效,为0或其它值时函数禁止。单色图 形显示函数如 GUI LoadPicO、 GUI LoadPicl0。 ● CONVERTCOLOR EN 颜色转换操作函数使能控制,设置为1时函数有效,为0或其它值时函数禁止。颜色转 换操作函数如 GUI Color2 iNdex565(0)、 GUI Color2 Index555)、 GUI Color2ndex444)、 GUI Color2 , Index332等等 14ZLG/GU|函数手册 ZLG/GUI函数表如表1~表11所列。以下函数原型中,unt8已定义为 unsigned char, unt32已定义为 unsigned int
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925 - 2 - 填充函数 GUI_FloodFill()使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁止 当使用填充函数时 可以定义 DOWNP_N UPP_N 宏来设置向上及向下折点个数 这两个 宏用于定义保存向上及向下折点数据的数组大小 l GUI_ArcX_EN 画圆弧函数 GUI_Arc4() GUI_Arc 使能控制 设置为 1 时函数有效 为 0 或其它值时 函数禁止 l GUI_Pieslice_EN 扇形函数 GUI_Pieslice()使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁止 l GUI_WINDOW_EN 窗口管理函数使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁止 窗口管理函 数如 GUI_WindowsDraw() GUI_WindowsHide() GUI_WindowsClr()等 由于窗口管理函数 使用到 5×7 ASCII 字体显示 所以必需同时设置 FONT5x7_EN 为 1 l GUI_MenuIco_EN 图标菜单操作函数使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁止 图标菜 单操作函数如 GUI_MenuIcoDraw() GUI_Button49x14() GUI_Button_OK() GUI_Button_Cancle() GUI_Button_OK1() GUI_Button_Cancle1()等 l GUI_MenuDown_EN 下拉菜单操作函数使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁止 下拉菜 单操作函数如 GUI_MMenuDraw() GUI_MMenuSelect() GUI_MMenuNSelect() GUI_SMenuDraw () GUI_SMenuSelect () GUI_SMenuHide ()等 l FONT5x7_EN 5×7 ASCII 码字库及显示函数使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁 止 5×7 ASCII 码字符显示函数如 GUI_PutChar() GUI_PutString() GUI_PutNoStr()等 l FONT8x8_EN 8×8 ASCII 码字库及显示函数使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁 止 8×8 ASCII 码字符显示函数如 GUI_PutChar8_8 () GUI_PutString8_8 () GUI_PutNoStr8_8 ()等 l FONT24x32_EN 24×32 数字库及显示函数使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁止 24×32 数字字符显示函数如 GUI_PutChar24_32() l GUI_PutHZ_EN 汉字显示函数 GUI_PutHZ()使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁止 l GUI_LoadPic_EN 单色图形显示函数使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁止 单色图 形显示函数如 GUI_LoadPic() GUI_LoadPic1() l CONVERTCOLOR_EN 颜色转换操作函数使能控制 设置为 1 时函数有效 为 0 或其它值时函数禁止 颜色转 换操作函数如 GUI_Color2Index_565() GUI_Color2Index_555() GUI_Color2Index_444() GUI_Color2Index_332 等等 1.4 ZLG/GUI 函数手册 ZLG/GUI 函数表如表 1 表 11 所列 以下函数原型中 uint8 已定义为 unsigned char uint32 已定义为 unsigned int
广州周立功单片机发展有限公司Te:(020)38730916387309173873097638730977Fax:38730925 表1硬件驱动层接口函数 LCDDRIVE. C) 参数 功能 void GUl Initialize( void) 初始化GUI(缓冲区及LCM) void GUI FillSCR(TCOLOR dat 填充的颜色值数据全屏填充 uint8 GUI Point(uint32 x, uint32 y, X,y点的坐标 画点(返回值为1时表示操作成功,为0 TCOLOR color) color显示颜色 表示失败) int GUI ReadPoint(uint32 x, uint32 y, X,y点的坐标 读取指定点的颜色(返回值为0时表示操 保存变量的指针作失败) void GUI HLine(uint32 x0, uint32 yo, x0,yo起点坐标 画水平线 uint32 xI 水平线终点x值 TCOLOR color) color显示颜色 id GUl RLine(uint32 xo, uint32 yo. x0,y0起点坐标 画垂直线 uint32 yl yI 垂直线终点y值 TCOLOR color) color显示颜色 int GUI Cmp Color(TCOLOR colorl color1颜色值1 比较两个颜色值是否相等,相等返回1 color2颜色值 否则返回0 void GUI Copy Color(TCOLOR*colorI color l目标变量指针颜色值复制,即 colorl=colo TCOLOR color2) color2原颜色值 可用资源: LCDDRIVEH中定义宏 TCOLOR、 GUI LCM XMAX及 GUI LCM YMAX, TCOLOR 为颜色数据类型, GUI LCM XMAX和 GUI LCM YMAX为LCM点像素数 表2基本图形操作函数( GUI BASE.C) 函数原型 void GUl Line(uint32 x0, uint32 yo, x0,y0起点坐标 画任意两点之间的直线 uint32 xl, uint32 yI xl,y!终点坐标 TCOLOR color) color显示颜色 void GuI Line with(uint82xo,uint32y0,|x0,y0起点坐标 画具有线宽的任意两点之间的直线(with un82x1,uint32y1,|x1,yl终点坐标 值最大为50) 线宽大小 TCOLOR color) void GUI LineS(uint32 const*points, points顶点坐标值指针|画多边形(即多个顶点之间的连续连线) 顶点数 TCOLOR color) color显示颜色 id Gul Rectangle(uint2x0,um32y0,|xo,y0矩形左上角坐标画矩形 uint32 xl, uint32 yl xl,y1矩形右下角坐标 TCOLOR color) lor显示颜色 void GUI Rectangle Fill(uint32x0,uin32yo,xo,yo矩形左上角坐标画填充矩形 1,uint32y1,xl,y!矩形右下角坐标 TCOLOR color) color填充颜色 void GUI Square(uint32 x0, uint32 yo, x0,y0正方形左上角坐标画正方形 ih边长 TCOLOR color) color显示颜色
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925 - 3 - 表 1 硬件驱动层接口函数(LCDDRIVE.C) 函数原型 参数 功能 void GUI_Initialize(void) 无 初始化 GUI(缓冲区及 LCM) void GUI_FillSCR(TCOLOR dat) dat 填充的颜色值数据 全屏填充 Void GUI_ClearSCR(void) 无 清屏 uint8 GUI_Point(uint32 x, uint32 y, TCOLOR color) x y 点的坐标 color 显示颜色 画点(返回值为 1 时表示操作成功 为 0 表示失败) int GUI_ReadPoint(uint32 x, uint32 y, TCOLOR *ret); x y 点的坐标 ret 保存变量的指针 读取指定点的颜色(返回值为 0 时表示操 作失败) void GUI_HLine(uint32 x0, uint32 y0, uint32 x1, TCOLOR color) x0 y0 起点坐标 x1 水平线终点 x 值 color 显示颜色 画水平线 void GUI_RLine(uint32 x0, uint32 y0, uint32 y1, TCOLOR color) x0 y0 起点坐标 y1 垂直线终点 y 值 color 显示颜色 画垂直线 int GUI_CmpColor(TCOLOR color1, TCOLOR color2) color1 颜色值 1 color2 颜色值 2 比较两个颜色值是否相等 相等返回 1 否则返回 0 void GUI_CopyColor(TCOLOR *color1, TCOLOR color2) color1 目标变量指针 color2 原颜色值 颜色值复制 即*color1= color2 可用资源 LCDDRIVE.H 中定义宏 TCOLOR GUI_LCM_XMAX 及 GUI_LCM_YMAX TCOLOR 为颜色数据类型 GUI_LCM_XMAX 和 GUI_LCM_YMAX 为 LCM 点像素数 表 2 基本图形操作函数(GUI_BASE.C) 函数原型 参数 功能 void GUI_Line(uint32 x0, uint32 y0, uint32 x1, uint32 y1, TCOLOR color) x0 y0 起点坐标 x1 y1 终点坐标 color 显示颜色 画任意两点之间的直线 void GUI_LineWith(uint32 x0, uint32 y0, uint32 x1, uint32 y1, uint8 with, TCOLOR color) x0 y0 起点坐标 x1 y1 终点坐标 with 线宽大小 color 显示颜色 画具有线宽的任意两点之间的直线(with 值最大为 50) void GUI_LineS(uint32 const *points, uint8 no, TCOLOR color) *points 顶点坐标值指针 no 顶点数 color 显示颜色 画多边形(即多个顶点之间的连续连线) void GUI_Rectangle(uint32 x0, uint32 y0, uint32 x1, uint32 y1, TCOLOR color) x0 y0 矩形左上角坐标 x1 y1 矩形右下角坐标 color 显示颜色 画矩形 void GUI_RectangleFill(uint32 x0, uint32 y0, uint32 x1, uint32 y1, TCOLOR color) x0 y0 矩形左上角坐标 x1 y1 矩形右下角坐标 color 填充颜色 画填充矩形 void GUI_Square(uint32 x0, uint32 y0, uint32 with, TCOLOR color) x0 y0 正方形左上角坐标 with 边长 color 显示颜色 画正方形
广州周立功单片机发展有限公司Te:(020)38730916387309173873097638730977Fax:38730925 接上表 函数原型 参数 功能 void GUI Circle(uint32 x0, uint32 yo xO,y0圆形的圆心坐标画圆形 圆形的半径 TCOLOR color) color显示颜色 void GUI CircleFillquint32xo,uint32y0,|x0,y0圆形的圆心坐标画填充圆形 uint32 r 圆形的半径 TCOLOR color) color填充颜色 void GUI Ellipse(uint32 x0, uint32 x0,x1椭圆形的x坐标画椭圆形(x0、xl分别为椭圆最左和最右 uint32 yo, uint32 y1 y0,y1椭圆形的y坐标的点的x坐标;y0、y1分别为椭圆最上 TCOLOR color) 和最下的点的y坐标) id GUI Ellipse Fill(uint3xo,uint32x,|x0,x1椭圆形的x坐标画填充椭圆形(x0、x1分别为椭圆最左和 uint32 yO, uint32 y1 y0,y1椭圆形的y坐标最右的点的x坐标;y0、y1分别为椭圆 TCOLOR color) color填充颜色 最上和最下的点的y坐标) void GUI FloodFill(uint32xo,uint32y0,|x0,yo指定填充点坐标图形填充(在 GUI CONFIG.H中配置向上 TCOLOR color) color填充颜色 及向下折点个数) void GUI Arc4(uint32 x, uint32y, x,y圆弧圆心坐标 ( angle为1-4,即0~90度 uint32 r 圆弧半径 90~180度、180~270度、270~360度) angle圆弧角度 TCOLOR color olr显示颜色 void GUl Arc(uint32 x, uint32 y, X,y圆弧圆心坐标 画任意角度圆弧( (stangle、 endangle为0~ 圆弧半径 359度) 已始 圆弧起 角度 uint32 endangle, gle圆弧终止角度 TCOLOR color) void GUI Pieslice(uint32 x, uint32 y, xO,y0扇形圆心坐标 画扇形( stangle、 endangle为0~359度) uint32. 扇形半径 uint32 stangle, stangle扇形起始角度 uint32 endangle, dangle扇形终止角度 TCOLOR color) color显示颜色 可用资源: GUI BASICH中定义数据结构 PointY,结构变量中包含点的坐标变量x、y,数据类型均 为uint32,如程序清单1所示。 程序清单1点数据结构定义 定义坐标数据结构制 i uint32 X ∥x坐标变量 uint 32 ∥y坐标变量
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925 - 4 - 接上表 函数原型 参数 功能 void GUI_Circle(uint32 x0, uint32 y0, uint32 r, TCOLOR color) x0 y0 圆形的圆心坐标 r 圆形的半径 color 显示颜色 画圆形 void GUI_CircleFill(uint32 x0, uint32 y0, uint32 r, TCOLOR color) x0 y0 圆形的圆心坐标 r 圆形的半径 color 填充颜色 画填充圆形 void GUI_Ellipse(uint32 x0, uint32 x1, uint32 y0, uint32 y1, TCOLOR color) x0 x1 椭圆形的 x 坐标 y0 y1 椭圆形的 y 坐标 color 显示颜色 画椭圆形(x0 x1 分别为椭圆最左和最右 的点的 x 坐标 y0 y1 分别为椭圆最上 和最下的点的 y 坐标) void GUI_EllipseFill(uint32 x0, uint32 x1, uint32 y0, uint32 y1, TCOLOR color) x0 x1 椭圆形的 x 坐标 y0 y1 椭圆形的 y 坐标 color 填充颜色 画填充椭圆形(x0 x1 分别为椭圆最左和 最右的点的 x 坐标 y0 y1 分别为椭圆 最上和最下的点的 y 坐标) void GUI_FloodFill(uint32 x0, uint32 y0, TCOLOR color) x0 y0 指定填充点坐标 color 填充颜色 图形填充(在 GUI_CONFIG.H 中配置向上 及向下折点个数) void GUI_Arc4(uint32 x, uint32 y, uint32 r, uint8 angle, TCOLOR color) x y 圆弧圆心坐标 r 圆弧半径 angle 圆弧角度 color 显示颜色 画 1/4 圆弧(angle 为 1 4 即 0 90 度 90 180 度 180 270 度 270 360 度) void GUI_Arc(uint32 x, uint32 y, uint32 r, uint32 stangle, uint32 endangle, TCOLOR color) x y 圆弧圆心坐标 r 圆弧半径 stangle 圆弧起始角度 endangle 圆弧终止角度 color 显示颜色 画任意角度圆弧(stangle endangle 为 0 359 度) void GUI_Pieslice(uint32 x, uint32 y, uint32 r, uint32 stangle, uint32 endangle, TCOLOR color) x0 y0 扇形圆心坐标 r 扇形半径 stangle 扇形起始角度 endangle 扇形终止角度 color 显示颜色 画扇形(stangle endangle 为 0 359 度) 可用资源 GUI_BASIC.H 中定义数据结构 PointXY 结构变量中包含点的坐标变量 x y 数据类型均 为 uint32 如程序清单 1 所示 程序清单 1 点数据结构定义 /* 定义坐标数据结构 */ typedef struct { uint32 x; // x 坐标变量 uint32 y; // y 坐标变量 } PointXY;
广州周立功单片机发展有限公司Te:(020)38730916387309173873097638730977Fax:38730925 表3显示颜色管理函数( GUI STOCKC C) 函数原型 参数 功能 void GUl SetColor(TCOLOR colorl 1前景色 设置前景色及背景色 背景色 void GUI Get Back Color(TCOLOR bakc)|*bakc保存变量的指针读取背景色的值 void GUl Get Disp Color(( TCOLOR·bakc)|* bakc保存变量的指针读取前景色的值 I void GUI_ Exchange Color void) 无 交换前景色与背景色 表4窗口管理函数 WINDOWS.C) 函数原型 参数 uint8 GuI Windows draw( WINDOWS +win)*win窗口句柄 显示窗口 uint8 GUI_WindowsHide(WINDOWS*win)* 窗口句柄 消隐窗口 void GUI WindowsCIr( WINDOWS*win)|*win窗口句柄 清屏窗口(即清屏窗口用户区域) 窗口数据结构 WINDOWS如程序清单2所示 程序清单2窗口数据结构 定义窗口数据结构 typedef struct i uint32 X, ∥窗口位置(左上角的x坐标) uint32 y; ∥窗口位置(左上角的y坐标) uint32 ∥窗口宽度 uint32 ∥窗口高度 ∥定义标题栏指针(标题字符为ASCI字符串,最大个数受窗口限制) uint8 *state ∥定义状态栏指针(若为空时则不显示状态栏) I WINDOWS 表5图标菜单操作函数( MENU C) 函数原型 参数 功能 void GUI Button94(uin2xuin32y,|x,y显示按钮起始坐标显示按钮(按钮大小为49*14) uint8*dat) 按钮的点阵数据 void GUI Button OK(uint32 x, uint32 y) 显示按钮起始坐标|显示OK按钮 void gui Button okl(un32xuin32y)|x,y显示按钮起始坐标显示选中状态的OK按钮 void GUI Button Cancle(uint32x,uint32y)x,y显示按钮起始坐标显示 CANCLE按钮 void GuI Button Cancle 1(uint32 x, uint:32y)x,y显示按钮起始坐标|显示选中状态的 CANCLE按钮 uin8 GUI MenulcoDraw(MENUICO*io)*co图标菜单句柄显示图标菜单 图标菜单数据结构 MENUICO如程序清单3所示
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925 - 5 - 表 3 显示颜色管理函数(GUI_STOCKC.C) 函数原型 参数 功能 void GUI_SetColor(TCOLOR color1, TCOLOR color2) color1 前景色 color2 背景色 设置前景色及背景色 void GUI_GetBackColor(TCOLOR *bakc) *bakc 保存变量的指针 读取背景色的值 void GUI_GetDispColor(TCOLOR *bakc) * bakc 保存变量的指针 读取前景色的值 void GUI_ExchangeColor(void) 无 交换前景色与背景色 表 4 窗口管理函数(WINDOWS.C) 函数原型 参数 功能 uint8 GUI_WindowsDraw(WINDOWS *win) *win 窗口句柄 显示窗口 uint8 GUI_WindowsHide(WINDOWS *win) *win 窗口句柄 消隐窗口 void GUI_WindowsClr(WINDOWS *win) *win 窗口句柄 清屏窗口(即清屏窗口用户区域) 窗口数据结构 WINDOWS 如程序清单 2 所示 程序清单 2 窗口数据结构 /* 定义窗口数据结构 */ typedef struct { uint32 x; // 窗口位置(左上角的 x 坐标) uint32 y; // 窗口位置(左上角的 y 坐标) uint32 with; // 窗口宽度 uint32 hight; // 窗口高度 uint8 *title; // 定义标题栏指针 (标题字符为 ASCII 字符串 最大个数受窗口限制) uint8 *state; // 定义状态栏指针 (若为空时则不显示状态栏) } WINDOWS; 表 5 图标菜单操作函数(MENU.C) 函数原型 参数 功能 void GUI_Button49x14(uint32 x, uint32 y, uint8 *dat) x y 显示按钮起始坐标 *dat 按钮的点阵数据 显示按钮(按钮大小为 49*14) void GUI_Button_OK(uint32 x, uint32 y) x y 显示按钮起始坐标 显示 OK 按钮 void GUI_Button_OK1(uint32 x, uint32 y) x y 显示按钮起始坐标 显示选中状态的 OK 按钮 void GUI_Button_Cancle(uint32 x, uint32 y) x y 显示按钮起始坐标 显示 CANCLE 按钮 void GUI_Button_Cancle1(uint32 x, uint32 y) x y 显示按钮起始坐标 显示选中状态的 CANCLE 按钮 uint8 GUI_MenuIcoDraw(MENUICO *ico) *ico 图标菜单句柄 显示图标菜单 图标菜单数据结构 MENUICO 如程序清单 3 所示
广州周立功单片机发展有限公司Te:(020)38730916387309173873097638730977Fax:38730925 程序清单3图标菜单数据结构 定义图标菜单数据结构 typedef struct i uint32 x; ∥图标菜单位置(左上角的x坐标) uint32 y ∥图标菜单位置(左上角的y坐标) uint8 "icodat ∥32*32的ICO数据地址 uint8 * title ∥相关标题提示(42*13) uint8 state ∥图标菜单状态,为0时表示未选中,为1时表示已选中 id ("Function ( void) ∥对应的服务程序 1 MENUICO 表6下拉菜单操作函数( MENU C) 函数原型 参数 功能 uint8 GUI MMenuDraw(MMENU * men 主菜单句柿 十显示主菜单 void GUI MMenuSelect(MMENU'men.|·men主菜单句柄 选择主菜单项(no为0~n) uint8 no) 选中的主菜单项 void GUI MMenuNSelect(MMENU"men,|*men主菜单句柄 取消主菜单项的选择(no为0~n) uint8 no) 取消选中的主菜单项 uint8 GUI SMenuDraw(SMENU 'men) 幸men子菜单句柄 显示子菜单 void GUI SMenuSelect(SMENU*men, men子菜单句柄 选择子菜单项(选取消old_no项的选中 old no原选中的子菜单项状态,然后选择 new no项 uint8 new no) new no新选中的子菜单项 uint8 GUI SMenuhide(menu"men men子菜单句柄 消隐子菜单 下拉式菜单数据结构 MMENU、 SMENU以及菜单规格如程序清单4所示 程序清单4下拉式菜单数据结构 /定义主菜单宽度,及最大菜单个数制 #define MMENU WIDTH #define MMENU NO /*定义菜单的宽度(下拉菜单),及最大子菜单个数 SMENU WIDTH SMENU NO 定义一子菜单项的数据结构* i WINDOWS win ∥所属窗口 menu no ∥对应的主菜单项号(O-n) uint& ∥子菜单项个数 *str[SMENU NO: ∥子菜单字符串
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925 - 6 - 程序清单 3 图标菜单数据结构 /* 定义图标菜单数据结构 */ typedef struct { uint32 x; // 图标菜单位置(左上角的 x 坐标) uint32 y; // 图标菜单位置(左上角的 y 坐标) uint8 *icodat; // 32*32 的 ICO 数据地址 uint8 *title; // 相关标题提示 (42*13) uint8 state; // 图标菜单状态 为 0 时表示未选中 为 1 时表示已选中 void (*Function)(void); // 对应的服务程序 } MENUICO; 表 6 下拉菜单操作函数(MENU.C) 函数原型 参数 功能 uint8 GUI_MMenuDraw(MMENU *men) *men 主菜单句柄 显示主菜单 void GUI_MMenuSelect(MMENU *men, uint8 no) *men 主菜单句柄 no 选中的主菜单项 选择主菜单项(no 为 0 n) void GUI_MMenuNSelect(MMENU *men, uint8 no) *men 主菜单句柄 no 取消选中的主菜单项 取消主菜单项的选择(no 为 0 n) uint8 GUI_SMenuDraw(SMENU *men) *men 子菜单句柄 显示子菜单 void GUI_SMenuSelect(SMENU *men, uint8 old_no, uint8 new_no) *men 子菜单句柄 old_no 原选中的子菜单项 new_no 新选中的子菜单项 选择子菜单项(选取消old_no项的选中 状态 然后选择 new_no 项) uint8 GUI_SMenuHide(SMENU *men) *men 子菜单句柄 消隐子菜单 下拉式菜单数据结构 MMENU SMENU 以及菜单规格如程序清单 4 所示 程序清单 4 下拉式菜单数据结构 /* 定义主菜单宽度 及最大菜单个数 */ #define MMENU_WIDTH 34 #define MMENU_NO 6 /* 定义菜单的宽度(下拉菜单) 及最大子菜单个数 */ #define SMENU_WIDTH 66 #define SMENU_NO 8 /* 定义一子菜单项的数据结构 */ typedef struct { WINDOWS *win; // 所属窗口 uint8 mmenu_no; // 对应的主菜单项号(0-n) uint8 no; // 子菜单项个数 char *str[SMENU_NO]; // 子菜单字符串
广州周立功单片机发展有限公司Te:(020)38730916387309173873097638730977Fax:38730 uint8 state ∥所选择的子菜单 void(* Function SMENU NO]void,∥子菜单对应的服务程序 1 SMENU; 主菜单数据结构 i WINDOWS *win, ∥所属窗口 uint& ∥主菜单个数 char· str IMMENU NO ∥主菜单字符串 1 MMENU: 表7图形及汉字操作函数( LOADBIT.C) 函数原型 参数 功能 void GUI LoadPic(uint32 x, uint32 y, x,y显示的起始坐标显示单色点阵图形 uint8*dat, 点阵数据指针 uint32hno,uint32ho)hno,lno图形的行/列数 void GUI LoadPicl(uint32 x, uint32 y, x,y显示的起始坐标「显示单色点阵图形(反相显示) at点阵数据指针 unt32hno,uint32ho)hno,hno图形的行/列数 void GUI PutHZ(uint32 x, uint32 y, 显示的起始坐标汉字显示 uint8 *dat 点阵数据指针 uint8 hno, uint8 Ino) hno,lno汉字的行/列数 表85×7ASC码字符显示函数(FONT57.C) 参数 功能 uint8 GUI_ PutChar(uint32 x, uint32y, x,y字符显示的坐标显示一个字符返回值为1时表示操作成 uint8 ch ch字符的十六进制值功,为0表示失败) void GUI PutString(uint32 x, uint32 y, x,y显示的起始坐标显示一字符串(以结束,没有自动换行 char *str) *str指向字符串的指针功能) void GUI PutNoStr(uint32 x, uint32y x,y显示的起始坐标显示字符串中指定个数的字符 har * str *str指向字符串的指针 uint8 no) 要显示字符的个数 表98×8ASC码字符显示函数(FONT8_8C) 「函数原型 参数 uint8 GUI PutChar 88(uint32x,uint32y,2|x,y字符显示的坐标显示一个字符(返回值为1时表示操作成 uint8 ch) ch字符的十六进制值功,为0表示失败) void GUI PutString8um32xuin2y,|x,y显示的起始坐标显示一字符串(以v结束,没有自动换行 *s指向字符串的指针功能)
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925 - 7 - uint8 state; // 所选择的子菜单 void (*Function[SMENU_NO])(void); // 子菜单对应的服务程序 } SMENU; /* 主菜单数据结构 */ typedef struct { WINDOWS *win; // 所属窗口 uint8 no; // 主菜单个数 char *str[MMENU_NO]; // 主菜单字符串 } MMENU; 表 7 图形及汉字操作函数(LOADBIT.C) 函数原型 参数 功能 void GUI_LoadPic (uint32 x, uint32 y, uint8 *dat, uint32 hno, uint32 lno) x y 显示的起始坐标 *dat 点阵数据指针 hno lno 图形的行/列数 显示单色点阵图形 void GUI_LoadPic1 (uint32 x, uint32 y, uint8 *dat, uint32 hno, uint32 lno) x y 显示的起始坐标 *dat 点阵数据指针 hno lno 图形的行/列数 显示单色点阵图形(反相显示) void GUI_PutHZ(uint32 x, uint32 y, uint8 *dat, uint8 hno, uint8 lno) x y 显示的起始坐标 *dat 点阵数据指针 hno lno 汉字的行/列数 汉字显示 表 8 5×7 ASCII 码字符显示函数(FONT5_7.C) 函数原型 参数 功能 uint8 GUI_PutChar(uint32 x, uint32 y, uint8 ch) x y 字符显示的坐标 ch 字符的十六进制值 显示一个字符(返回值为 1 时表示操作成 功 为 0 表示失败) void GUI_PutString(uint32 x, uint32 y, char *str) x y 显示的起始坐标 *str 指向字符串的指针 显示一字符串(以'\0'结束 没有自动换行 功能) void GUI_PutNoStr(uint32 x, uint32 y, char *str, uint8 no) x y 显示的起始坐标 *str 指向字符串的指针 no 要显示字符的个数 显示字符串中指定个数的字符 表 9 8×8 ASCII 码字符显示函数(FONT8_8.C) 函数原型 参数 功能 uint8 GUI_PutChar8_8(uint32 x, uint32 y, uint8 ch) x y 字符显示的坐标 ch 字符的十六进制值 显示一个字符(返回值为 1 时表示操作成 功 为 0 表示失败) void GUI_PutString8_8(uint32 x, uint32 y, char *str) x y 显示的起始坐标 *str 指向字符串的指针 显示一字符串(以'\0'结束 没有自动换行 功能)
广州周立功单片机发展有限公司Te:(020)38730916387309173873097638730977Fax:38730 接上表 函数原型 参数 功能 void guI putnost88(uint32 x. uInt32y,|x,y显示的起始坐标显示字符串中指定个数的字符 char *str *str指向字符串的指针 uint& n 要显示字符的个数 表1024×32ASC数字字符显示函数(FONT2432C) 函数原型 参数 功能 uin8 GUI Put char2432unx,umt32y,x,y字符显示的坐标显示一个字符(返回值为1时表示操作成 uint8 ch) 字符的十六进制值功,为0表示失败) 表11颜色转换操作函数( CONVERTCOLOR. C) 函数原型 参数 功能 un6 iUI Color2Inde6 olorRGB) colorRGB RGB颜色值RGB颜色值64K色索引值 un32 GUI Index2Color 55sumn6ind)indx索引颜色值64K色索引值→RGB颜色值 uint166 GUI Color2 iNdex 5555uint32 colorRGB) colorRGB RGB颜色值RGB颜色值→32K色索引值 uint32 GUI Index2Color 555(uint16 index) index素引颜色值|32K色索引值÷RGB颜色值 t16 GUl Color2lndex 444(uint32 colorRGB RGB颜色值|RGB颜色值→4K色索引值 t32 GUl Index2Color 444(uint 16 dx索引颜色值4K色素引值→RGB颜色值 uint8 GUI Color2 iNdex332(uint32 colorrGB) colorRGB rGB颜色值|RGB颜色值→256色索引值 un32 GUI Index2Colc0 dex) index索引颜色值25色索引值÷RGB颜色值 uini8 GUI Color2 Index2un2 colorrGB)| colorRGB RGB颜色值|RGB颜色值→64色索引值 uint32 GUl Index2Color 222(uint8 index) 颜色值|64色索引值→RGB颜色值 un8 GUI Color2. Index 1l l(uint32 colorRGB)| colorRGB RGB颜色值|RGB颜色值→8色索引值 uint32 GUI Index2 Color 11l(uint8 Index) index 索引颜色值8色索引值→RGB颜色值
广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925 - 8 - 接上表 函数原型 参数 功能 void GUI_PutNoStr8_8(uint32 x, uint32 y, char *str, uint8 no) x y 显示的起始坐标 *str 指向字符串的指针 no 要显示字符的个数 显示字符串中指定个数的字符 表 10 24×32 ASCII 数字字符显示函数(FONT24_32.C) 函数原型 参数 功能 uint8 GUI_PutChar24_32(uint32 x, uint32 y, uint8 ch) x y 字符显示的坐标 ch 字符的十六进制值 显示一个字符(返回值为 1 时表示操作成 功 为 0 表示失败) 表 11 颜色转换操作函数(CONVERTCOLOR.C) 函数原型 参数 功能 uint16 GUI_Color2Index_565(uint32 colorRGB) colorRGB RGB 颜色值 RGB 颜色值 ‡ 64K 色索引值 uint32 GUI_Index2Color_565(uint16 index) index 索引颜色值 64K 色索引值 ‡ RGB 颜色值 uint16 GUI_Color2Index_555(uint32 colorRGB) colorRGB RGB 颜色值 RGB 颜色值 ‡ 32K 色索引值 uint32 GUI_Index2Color_555(uint16 index) index 索引颜色值 32K 色索引值 ‡ RGB 颜色值 uint16 GUI_Color2Index_444(uint32 colorRGB) colorRGB RGB 颜色值 RGB 颜色值 ‡ 4K 色索引值 uint32 GUI_Index2Color_444(uint16 index) index 索引颜色值 4K 色索引值 ‡ RGB 颜色值 uint8 GUI_Color2Index_332(uint32 colorRGB) colorRGB RGB 颜色值 RGB 颜色值 ‡ 256 色索引值 uint32 GUI_Index2Color_233(uint8 index) index 索引颜色值 256 色索引值 ‡ RGB 颜色值 uint8 GUI_Color2Index_222(uint32 colorRGB) colorRGB RGB 颜色值 RGB 颜色值 ‡ 64 色索引值 uint32 GUI_Index2Color_222(uint8 index) index 索引颜色值 64 色索引值 ‡ RGB 颜色值 uint8 GUI_Color2Index_111(uint32 colorRGB) colorRGB RGB 颜色值 RGB 颜色值 ‡ 8 色索引值 uint32 GUI_Index2Color_111(uint8 Index) index 索引颜色值 8 色索引值 ‡ RGB 颜色值