#include "config.h"
#include "BMP.h"
//========================================================================
#define CMD_LCM_INIT 0x00
#define CMD_DEV_INFO 0x01
#define CMD_LCM_DEBUG 0x02
#define CMD_SHOW_IMAGE 0x03
#define CMD_SHOW_COLOR 0x04
#define CMD_LOAD_IMAGE 0x05
//========================================================================
//========================================================================
//========================================================================
INT8U SYS_RunMode(void)
{
INT16U time_tick = 0;
while( (++time_tick)<100 )
{
if(KEY_GetEvent() == DNKEY)
{
return 0;
}
DelayMs(1);
}
return 1;
}
/****************************************************************************
// GUI DEMO
****************************************************************************/
void DemoLine(void)
{
WINDOWS demow;
GUI_SetColor(YELLOW, B);
demow.x = 20;
demow.y = 20;
demow.width = GUI_LCM_XMAX-40;
demow.hight = GUI_LCM_YMAX-40;
demow.title = (INT8U *) "Line for Demo";
demow.state = (INT8U *) "Enter a key return.";
GUI_WindowsDraw(&demow);
GUI_Line(90, 60, 110, 90, G);
GUI_Line(110, 90, 190, 50, G);
GUI_LineWith(50, 60, 70, 90, 3, G);
GUI_LineWith(70, 90, 170, 40, 3, G);
GUI_RLine(70, 45, 70, R);
GUI_HLine(140, 85, 180, R);
GUI_Printf6_8(80, 160, "Welcome!");
GUI_Printf8_16(80, 180, "Welcome!");
while(KEY_GetEvent()!= EXKEY);
{
GUI_WindowsHide(&demow);
}
}
void DemoCircle(void)
{
WINDOWS demow;
GUI_SetColor(YELLOW, B);
demow.x = 20;
demow.y = 20;
demow.width = GUI_LCM_XMAX-40;
demow.hight = GUI_LCM_YMAX-40;
demow.title = (INT8U *) "Circle for Demo";
demow.state = (INT8U *) "Enter a key return.";
GUI_WindowsDraw(&demow);
GUI_CircleFill(75, 60, 15, G);
GUI_Circle(100, 70, 5, G);
GUI_Circle(135, 65, 20, YELLOW);
GUI_Circle(155, 65, 20, G);
GUI_FloodFill(145, 65, R);
while(KEY_GetEvent()!= EXKEY);
{
GUI_WindowsHide(&demow);
}
}
/****************************************************************************
* 名称DemoPoly()
* 功能绘画多边形演示
* 入口参数无
* 出口参数无
****************************************************************************/
INT16U const mline[] = {120,40, 110,55, 90,60, 110,70, 120,90, 130,70, 150,60, 130,55, 120,40};
INT16U const poly5[] = {65,45, 50,60, 50,90, 80,90, 80,60, 65,45};
INT16U const poly4[] = {155,50, 190,50, 155,85, 190,85, 155,50};
void DemoPoly(void)
{
WINDOWS demow;
GUI_SetColor(YELLOW, B);
// 显示演示窗口
demow.x = 20;
demow.y = 20;
demow.width = GUI_LCM_XMAX-40;
demow.hight = GUI_LCM_YMAX-40;
demow.title = (INT8U *) "Poly for Demo";
demow.state = (INT8U *) "Enter a key return.";
GUI_WindowsDraw(&demow);
GUI_LineS(poly5, 6, G);
GUI_LineS(mline, 9, R);
GUI_FloodFill(115, 55, G);
GUI_LineS(poly4, 5, R);
GUI_FloodFill(140, 52, R);
while(KEY_GetEvent()!= EXKEY);
{
GUI_WindowsHide(&demow);
}
}
void DemoArc(void)
{
WINDOWS demow;
GUI_SetColor(YELLOW, B);
// 显示演示窗口
demow.x = 20;
demow.y = 20;
demow.width = GUI_LCM_XMAX-40;
demow.hight = GUI_LCM_YMAX-40;
demow.title = (INT8U *) "Arc for Demo";
demow.state = (INT8U *) "Enter a key return.";
GUI_WindowsDraw(&demow);
GUI_Arc(100, 120, 30, 10, 270, B);
while(KEY_GetEvent()!= EXKEY);
{
GUI_WindowsHide(&demow);
}
}
void DemoEllipse(void)
{
WINDOWS demow;
GUI_SetColor(YELLOW, B);
// 显示演示窗口
demow.x = 20;
demow.y = 20;
demow.width = GUI_LCM_XMAX-40;
demow.hight = GUI_LCM_YMAX-40;
demow.title = (INT8U *) "Ellipse for Demo";
demow.state = (INT8U *) "Enter a key return.";
GUI_WindowsDraw(&demow);
GUI_Ellipse(60, 30, 150, 80, R);
GUI_EllipseFill(100, 60, 90, 180, G);
while(KEY_GetEvent()!= EXKEY);
{
GUI_WindowsHide(&demow);
}
}
void DemoRectang(void)
{
WINDOWS demow;
GUI_SetColor(YELLOW, B);
// 显示演示窗口
demow.x = 20;
demow.y = 20;
demow.width = GUI_LCM_XMAX-40;
demow.hight = GUI_LCM_YMAX-40;
demow.title = (INT8U *) "Rectang for Demo";
demow.state = (INT8U *) "Enter a key return.";
GUI_WindowsDraw(&demow);
GUI_Rectangle(40, 40, 140, 180, R);
while(KEY_GetEvent()!= EXKEY);
{
GUI_WindowsHide(&demow);
}
}
void DemoBmp(void)
{
WINDOWS demow;
GUI_SetColor(YELLOW, B);
// 显示演示窗口
demow.x = 20;
demow.y = 20;
demow.width = GUI_LCM_XMAX-40;
demow.hight = GUI_LCM_YMAX-40;
demow.title = (INT8U *) "Bmp for Demo";
demow.state = (INT8U *) "Enter a key return.";
GUI_WindowsDraw(&demow);
// GUI_LoadPic_2bit(50, 50, image2, 128, 128);
while(KEY_GetEvent()!= EXKEY);
{
GUI_WindowsHide(&demow);
}
}
void MoveCircle(void)
{
//MoveBall();
}
/****************************************************************************
* 名称RunDemo()
* 功能进行GUI 的演示包括画线画圆圆弧椭圆矩形多边形bmp 图及
* 汉字动画等
* 入口参数无
* 出口参数无
****************************************************************************/
void RunDemo(void)
{
WINDOWS mainwindows;
MENUICO mainmenu[8];
INT8U select; // 菜单选项变量
INT8U key;
INT8U i;
GUI_SetColor(WHITE, B);
// 设置主窗口并显示输出
mainwindows.x = 0;
mainwindows.y = 0;
mainwindows.width = 240;
mainwindows.hight = 320;
mainwindows.title = (INT8U *) "Graphics Function Demo!";
mainwindows.state = NULL;
GUI_WindowsDraw(&mainwindows); // 绘制主窗口
// 设置图标菜单
for(i=0; i<8; i++)
{
if(i<4)
{
mainmenu[i].x = i*60+14;
mainmenu[i].y = 20;
}
else
{
mainmenu[i].x = (i-4)*60+14;
mainmenu[i].y = 72;
}
mainmenu[i].state = 0; // 初始化为末选中状态
}
// 连接相应的图标数据
mainmenu[0].icodat = (INT8U *) menuico1;
mainmenu[0].title = (INT8U *) menuchar1;
mainmenu[1].icodat = (INT8U *) menuico2;
mainmenu[1].title = (INT8U *) menuchar2;
mainmenu[2].icodat = (INT8U *) menuico3;
mainmenu[2].title = (INT8U *) menuchar3;
mainmenu[3].icodat = (INT8U *) menuico4;
mainmenu[3].title = (INT8U *) menuchar4;
mainmenu[4].icodat = (INT8U *) menuico5;
mainmenu[4].title = (INT8U *) menuchar5;
mainmenu[5].icodat = (INT8U *) menuico6;
mainmenu[5].title = (INT8U *) menuchar6;
mainmenu[6].icodat = (INT8U *) menuico7;
mainmenu[6].title = (INT8U *) menuchar7;
mainmenu[7].icodat = (INT8U *) menuico8;
mainmenu[7].title = (INT8U *) menuchar8;
// 连接菜单功能函数
mainmenu[0].Function = (void(*)())DemoLine;
mainmenu[1].Function = (void(*)())DemoCircle;
mainmenu[2].Function = (void(*)())DemoArc;
mainmenu[3].Function = (void(*)())DemoEllipse;
mainmenu[4].Function = (void(*)())DemoRectang;
mainmenu[5].Function = (void(*)())DemoPoly;
mainmenu[6].Function = (void(*)())DemoBmp;
mainmenu[7].Function = (void(*)())MoveCircle;
// 设置默认菜单
mainmenu[0].state = 1;
select = 0;
// 进行主菜单显示及选择操作
while(1)
{
for(i=0; i<8; i++) // 显示图标菜单
{
GUI_MenuIcoDraw(&mainmenu[i]);
}
// 选择功能
while(1)
{
key = KEY_GetEvent();
if(key==OKKEY) break; // 点击OK 键选择
if(key==DNKEY)
{
DelayMs(200);
mainmenu[select].state = 0; // 取消上一选择
GUI_MenuIcoDraw(&mainmenu[select]);
select++; // 指向下一菜单
if(select>7)
select=0;
mainmenu[select].state = 1;
GUI_MenuIcoDraw(&mainmenu[select]);
}
if(key==UPKEY)
{
DelayMs(200);
mainmenu[select].state = 0; // 取消上一选择
GUI_MenuIcoDraw(&mainmenu[select]);
if(select==0)
select=7;
else
select--; // 指向下一菜单
mainmenu[select].state = 1;
GUI_MenuIcoDraw(&mainmenu[select]);
}
}
// 执行相应功能
(*mainmenu[select].Function)();
// if(select>=6)
GUI_SetColor(WHITE, BLACK);
GUI_WindowsDraw(&mainwindows); // 主窗口重绘
myGUI.rar_430 myg_MYG_lcd gui_lcd library_tft320240 gui
版权申诉
171 浏览量
2022-09-21
06:34:19
上传
评论
收藏 185KB RAR 举报
朱moyimi
- 粉丝: 61
- 资源: 1万+
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0