微型嵌入式GUI - 应用开发-菜单,多选框和对话窗口

来源:互联网 发布:linux内存管理浅析 编辑:程序博客网 时间:2024/04/30 02:19
 /*
微型嵌入式GUI - 应用开发

Website: www.ecurb2006.com

演示如何创建对象,使用菜单,多选框和对话窗口

*/

#include "gui.h"
MENU mymenu[]={
{1,"aaaa",0,0},
{1,"aaaa",0,0},
{1,"aaaa",0,0}
};
typedef struct _MyData
{
HAND a;
HAND menu;
}MyData,*PMyData;

USER_PRO MyWin(HAND hd,MESSAGE msg)
{
if(msg.type == GM_SYSTEM)
switch(msg.message)
{
case GM_Create:
     {
     PMyData md;
     int i;
     md=(PMyData)Gmalloc(sizeof(MyData),"");
     CreateObject(hd,BUTTON,1,1,"Create Dialog",10,40,150,100,0,0); /* 创建按钮 */
     md->a=CreateObject(hd,CHECKBOX,1,1,"Hello",10,120,100,140,0,0);/* 创建多选框 */
     md->menu=CreateObject(hd,MAINMENU,1,1,"Menu",160,40,220,60,0,0);/* 创建对话窗口 */
     for (i=0;i<3 ;i++ )
     efMainMenu->Add(md->menu,&mymenu[i]);/* 添加菜单子项 */
     SetObjVar(hd,(HAND)md);
     }
      return;
default:return;
}
if(msg.type == GM_COMMAND)
switch(msg.message)
{
case 1:
     {
     PMyData md;
     md=(PMyData)GetObjVar(hd);
     if(!md) return;
     if(efCheckBox->Get(md->a)) /* 获得多选框状态 */
     efDialogWin->Start(hd,0,0,"选择了!",50,50,200,200,0,0); /* 启动对话窗口 */
     else efDialogWin->Start(hd,0,0,"没选择!",50,50,200,200,0,0);
     }
     return;
default:return;
}
}

int gmain(void*data)
{
CreateObject(0,MAINWINDOW,1,1,"Hello,World",10,10,400,400,MyWin,0);
return 0;
}
原创粉丝点击