设为首页 加入收藏

TOP

一种灵活的嵌入式软件架构(二)
2014-11-24 03:26:55 】 浏览:1467
Tags:灵活 嵌入式 软件 架构
ude "pageWnd.h" /*===================================================== = =====================================================*/ char flagPaint = 0; void (* pOnPaint)(void) = 0; void (* pOnKey)(short) = 0; const char *pMenuStr; uchar menuSelect = 0; uchar menuLine = 0; uchar menuTop; TypePage *pageCurrent; TypePage *pageTreeTab[10]; uchar pageIndex = 0; /*===================================================== = =====================================================*/ void WndDrawMenu(void); /************************************************************************* * 函数原型: * 功能描述: * 入口参数: * 出口参数: * 返 回 值: *************************************************************************/ void WndPageSet(const TypePage *pg, int type) { if (pg == &pageMain) //防止出错 { pageIndex = 0; } else if (type == 0) { pageTreeTab[pageIndex++] = pageCurrent; } pageCurrent = (TypePage *)pg; pOnPaint = pg->OnPaint; pOnKey = pg->OnKey; flagPaint = 1; } /************************************************************************* * 函数原型: * 功能描述: * 入口参数: * 出口参数: * 返 回 值: *************************************************************************/ TypePage * WndGetPage(void) { return pageCurrent; } /************************************************************************* * 函数原型: * 功能描述: * 入口参数: * 出口参数: * 返 回 值: *************************************************************************/ void WndPageEsc(void) { TypePage *pg; if (pageIndex != 0) { pageIndex--; pg = pageTreeTab[pageIndex]; } else { pg = (TypePage *)&pageMain; } pageCurrent = pg; pOnPaint = pg->OnPaint; pOnKey = pg->OnKey; flagPaint = 1; } /************************************************************************* * 函数原型: * 功能描述: * 入口参数: * 出口参数: * 返 回 值: *************************************************************************/ void WndOnPaint(void) { if (flagPaint != 0) { flagPaint = 0; (*pOnPaint)(); } } /************************************************************************* * 函数原型: * 功能描述: * 入口参数: * 出口参数: * 返 回 值: *************************************************************************/ void WndOnKey(short key) { if (pOnKey != 0) { (*pOnKey)(key); } } /************************************************************************* * 函数原型: * 功能描述: * 入口参数: * 出口参数: * 返 回 值: *************************************************************************/ void WndMenuInit(const char *pmn, char mline) { menuSelect = 0; pMenuStr = pmn; menuLine = mline; menuTop = 0; WndDrawMenu(); } /************************************************************************* * 函数原型: * 功能描述: * 入口参数: * 出口参数: * 返 回 值: *************************************************************************/ void WndMenuSelet(int m) { //光标滑动 if (m > 0) //下移 { menuSelect++; if (menuSelect == menuLine) menuSelect = 0; if (menuSelect > menuTop + 4) { if (menuLine < menuTop + 4) menuTop = menuLine - 4; else menuTop = menuSelect - 4; } } else if (m < 0) //上移 { if (menuSelect == 0) menuSelect = menuLine - 1; else menuSelect--; } //图框移动 if (menuSelect < menuTop) //上移 { menuTop = menuSelect; } else if (menuSelect >= menuTop + 4) //下移 { menuTop = menuSelect - 3; } WndDrawMenu(); } /************************************************************************* * 函数原型: * 功能描述: * 入口参数: * 出口参数: * 返 回 值: *************************************************************************/ char WndMenuGetSelet(void) { return menuSe
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇设计模式(4) 原型模式(Prototype) 下一篇Java基础-面向对象(封装、继承、..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目