/*         minitos Menu 采用和Windows一样的菜单设计API,快速设计嵌入式菜单系统。    可以根据所选择的菜单触发一个子程序运行。(酷吧,像delphi的事件函数一样:) )
 minitos就是 mini Task OS,意思是迷你的rTOS.
http://www.minitos.com  minitos嵌入开发网主站
http://www2.minitos.com minitos嵌入开发网2站
http://net.minitos.com   minitos嵌入开发网网络站
http://www2.minitos.com/bbs 嵌入式论坛
http://ask.embed.cc  嵌入式提问吧
minitos 嵌入操作系统 :  http://www.minitos.com/index.htm minitos Windows C++嵌入图形系统  http://www.minitos.com/index.htm
       本文实现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, "Paste");           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, "Paste");     {     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; } |
|