开启辅助访问 切换到窄版

打印 上一主题 下一主题

menutpl.c 实现minitos Menu 的菜单摸板

[复制链接]
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*
   
    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 的菜单摸板
    created by Linls,2003.8
*/


/*
菜单摸板
*/

#include <string.h>
#include "menu.h"
#include "MenuTpl.h"


MENUITEM Top[3] = {
    /*Name,    ID ,  Type,SubMenu, Key, bExit, Func, EnterFunc,pNext, pPrev */

    {"Top1",   0,    0,    0,       0,   TRUE  ,NULL,NULL,     NULL, NULL},
    {"Top2",   0,    0,    0,       0,   TRUE  ,NULL,NULL,     NULL, NULL},
    {"Top3",   0,    0,    0,       0,   TRUE  ,NULL,NULL,     NULL, NULL}

};

MENUITEM ItemExp[2]={

    /*Name,     ID,  Type,SubMenu, Key, bExit, Func, EnterFunc, pNext, pPrev */

    {"item1",   200, 0,   0,       0,    TRUE  ,NULL,NULL,     NULL, NULL},
    {"item2",   201, 0,   0,       0,    TRUE  ,NULL,NULL,     NULL, NULL}
   
};




HMENU CreateFileMenu (void)
{
    HMENU hPopupMenu;
   
    hPopupMenu = CreatePopupMenu ();

    AppendMenu(hPopupMenu, MF_ENABLED, IDM_NEW, "new");   
    AppendMenu(hPopupMenu, MF_ENABLED, IDM_OPEN, "open");   
   
    return hPopupMenu;
}
HMENU CreateEditMenu (void)
{
    HMENU hPopupMenu;
   
    hPopupMenu = CreatePopupMenu ();

    AppendMenu(hPopupMenu, MF_ENABLED, IDM_COPY, "Copy");   
    AppendMenu(hPopupMenu, MF_ENABLED, IDM_PASTE, "aste");   
   
    return hPopupMenu;
}

/*
菜单设计方式1
自底向上设计菜单
*/
HMENU CreateMenu_System1 (void)
{
    HMENU hMenu,hPopup;
   
    hMenu = CreateMenu ();

    hPopup = CreateFileMenu();
    AppendMenu(hMenu, MF_POPUP, (UINT)hPopup, "!File");   

    hPopup = CreateEditMenu();
    AppendMenu(hMenu, MF_POPUP, (UINT)hPopup, "!Edit");   
    return hMenu;
}

/*
菜单设计方式2
自顶向下设计菜单
*/
HMENU CreateMenu_System2 (void)                        
{
    HMENU hPopupMenu_System;  
    hPopupMenu_System = CreatePopupMenu();

   
    AppendMenu(hPopupMenu_System, MF_ENABLED, 301, "TestItem0");   
   

    {
        HMENU hPopupMenu_File;
        hPopupMenu_File = AppendPopupMenu(hPopupMenu_System,"!File");
        {
        
            AppendMenu(hPopupMenu_File, MF_ENABLED, IDM_NEW, "new");   
            AppendMenu(hPopupMenu_File, MF_ENABLED, IDM_OPEN, "open");
        }
    }
   

    {
        HMENU hPopupMenu_Edit;
        hPopupMenu_Edit = AppendPopupMenu(hPopupMenu_System,"!Edit");
        {
            AppendMenu(hPopupMenu_Edit, MF_ENABLED, IDM_COPY, "Copy");   
            AppendMenu(hPopupMenu_Edit, MF_ENABLED, IDM_PASTE, "aste");   
            {
                HMENU hPopupMenu_Hello;
                hPopupMenu_Hello = AppendPopupMenu(hPopupMenu_Edit,"!Hello");
                {
                    AppendMenu(hPopupMenu_Hello, MF_ENABLED, 501, "Hello L1");   
                    AppendMenu(hPopupMenu_Hello, MF_ENABLED, 502, "Hello L2");
                }
            
            }
        }
    }

    return hPopupMenu_System;
}

/*
菜单设计方式3
表格方式设计菜单
注意:采用表格方式设计菜单的菜单项不能删除,因为这些项不是动态分配内存的
*/
HMENU CreateMenu_System3 (void)                        
{
    HMENU pMenuTop,hMenu;

    pMenuTop =InitMenuItemList(Top,3);
    hMenu = InitMenuItemList(ItemExp,2);
    SetMenuItem((PMENUPOPUP)pMenuTop, &(Top[0]),hMenu );

    hMenu = CreateMenu_System2();
    SetMenuItem((PMENUPOPUP)pMenuTop, &(Top[1]),hMenu );

    return pMenuTop;
}
回复

使用道具 举报

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

本版积分规则

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