开启辅助访问 切换到窄版

打印 上一主题 下一主题

main_test.c 实现minitos Menu 的main入口,测试使用

[复制链接]
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*
   minitos Menu 采用和Windows一样的菜单设计API,快速设计嵌入式菜单系统。
   可以根据所选择的菜单触发一个子程序运行。(酷吧,像windows的事件函数一样 )

minitos就是 mini Task OS.

http://www.dianzixuexi.com  电子学习网
minitos 嵌入操作系统 : http://www.dianzixuexi.com minitos相关频道
minitos Windows C++嵌入图形系统 http://www.dianzixuexi.com
Copyright (C) 福州福拓电子科技有限公司
  
    本文实现minitos Menu 的main入口,测试使用
    created by Linls,2003.12

*/

/*
菜单使用例子
void MenuTest_Entry(void)可以作为一个菜单任务运行
*/
#include "Menu.h"

PMENUPOPUP pMenuSystem;
PMENUPOPUP pMenuBook;

/*
建立一个给菜单用的任务实例
返回建立的实例只能给一个进程使用,这是多任务菜单中防止多任务冲突使用
如果只是一个任务重使用菜单,就不需要该实例了,直接返回NULL即可.
*/
HINST CreateTestInst(void)
{
    return (HINST)NULL;
}



/*
显示菜单,如果没有菜单则显示主界面
*/
void Menu_OnDisplay(HINST hInst)
{
    MENU_INST * p=(MENU_INST * )hInst;

    if(p->sg_pCurrMenuItem == NULL)
    {
        /*不处于菜单状态
        */

        MO_Display(" Main Test\r\n");
    }else
    {
        /*处于菜单状态则显示菜单
        */
        MenuDisplay(hInst);
    }
}


/*执行菜单函数*/
void ExecMenuFunc(HINST hInst,char c)
{
        UINT uiMenuID;
   
        uiMenuID = MenuSelect(hInst,c);
        switch(uiMenuID)
        {
        case 10:
            
            break;
        case 11:            
                                
            break;

        }
}
void MenuTest_Entry(void)
{
    char c;
    HINST hInst_Menu,hInst_Test;

        /*建立一个任务实例
        在多任务中,可能有多个视窗,每个任务可能有不同的菜单,
        各个任务的切换不能破环菜单
       */
    hInst_Test = CreateTestInst();

        /*建立一个菜单实例,该菜单实例是在本任务实例下运行的 */
    hInst_Menu = CreateMenuInst(hInst_Test);

            /*建立一个主菜单 */
    pMenuSystem =(PMENUPOPUP) CreateMenu_System3();

        /*建立一个菜单2 */
    pMenuBook =(PMENUPOPUP) CreateMenu_System2();
   
    while(1)
    {

        Menu_OnDisplay(hInst_Menu);

        c=getchar();
   
/*.............................................................
菜单处理    开始   
*/
        if(c=='a')
        {
            /* 测试主菜单
            */
            MenuStart(hInst_Menu, (HMENU)pMenuSystem);
            continue;
        }else
        if(c=='b')
        {
            /* 测试菜单2
            */
            MenuStart(hInst_Menu, (HMENU)pMenuBook);
            continue;
        }
        ExecMenuFunc(hInst_Menu,c);
/*菜单处理    结束
.............................................................
*/
    }
}


void main(void)
{
    /* 菜单任务工作开始
    */
    MenuTest_Entry();
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表