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

本文展示了一个微型嵌入式GUI的应用开发实例,包括对象创建、菜单使用、多选框及对话窗口等功能实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 /*
微型嵌入式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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值