|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
16 楼』:
恩。不打算支持窗口重叠。
打算支持更有用的功能,如 Unicode 编码支持!
ps:任务拦切换也很方便哦
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2007-3-19 06:56 |
|
|
henrya2
中级用户
积分 486
发帖 171
注册 2006-2-12
状态 离线
|
『第
17 楼』:
Good.
|
Those who do not study the past are condemned to repeat it |
|
2007-3-19 07:05 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
|
2007-4-30 23:33 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
|
2007-5-1 00:27 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
|
2007-5-1 02:12 |
|
|
yws
初级用户
积分 115
发帖 6
注册 2003-4-4
状态 离线
|
|
2007-5-9 12:32 |
|
|
defrag
中级用户
痴迷DOS者
积分 456
发帖 570
注册 2004-10-9
状态 离线
|
『第
22 楼』:
可不可以做成Win98样式?
X-Window有许多人不熟悉
|
DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青![upload=bmp]uploadImages/20035317345478982.png[/upload] |
|
2007-5-13 19:26 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
23 楼』:
你是指界面吗?
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2007-5-14 22:03 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
24 楼』:
演示如何创建对象,使用TEXTBOX文本框
/*
微型嵌入式GUI - 应用开发
Website: [url]www.ecurb2006.com[/url]
演示如何创建对象,使用TEXTBOX文本框。
*/
#include "gui.h"
#define MyWinCommand_A 4 /* 按钮的ID*/
#define MyWinCommand_B 5
/* 私有数据,可以用来保存对象的句柄 */
/* 句柄实质是结构(struct)指针 */
typedef struct _MyWinData
{
HAND a;
HAND b;
HAND c;
}MyWinData,*PMyWinData;
/*
USER_PRO 为简单的宏定义
#define USER_PRO void
表明为对象消息处理函数
HAND 为对象句柄
MEEAGE 为消息结构
更多请查阅 微型嵌入式GUI 编程指南([url]http://www.ecurb2006.com)[/url]
*/
USER_PRO MyMainWin(HAND hd,MESSAGE msg)
{
if(msg.type == GM_SYSTEM)/* 先判断消息类型 */
switch(msg.message)
{
case GM_Draw:/* 对象显示(或重绘)时,产生这个消息*/
{
HDC hdc; /* HDC 为图形设备句柄 */
PefGDITag g=efGDI;
/*
efGDI为作图类, ef类操作方法之一,
整个GUI中对象类都采用了这种API封装方法,接口统一,简单易用
*/
hdc=g->Start(hd);/* 开始作图 */
g->SetColor(hdc,COLOR_BLACK); /* 设定颜色 */
g->DrawText(hdc,5,50,"Input a");/* 输出文字 */
g->DrawText(hdc,5,75,"Input b");
g->DrawText(hdc,5,100,"Show");
g->End(hd,hdc); /* 结束作图 */
}
return;
case GM_Create: /* 对象创建后产生的消息 ,可以在这里完成一些初始化操作 */
{
PMyWinData mydata=NULL;
mydata=(PMyWinData)Gmalloc(sizeof(MyWinData),"");/* 分配内存 */
if(!mydata) return; /* return NULL */
mydata->a=CreateObject(hd,TEXTBOX,1,0,"",70,50,200,70,0,0);
mydata->b=CreateObject(hd,TEXTBOX,2,0,"",70,75,200,95,0,0);
mydata->c=CreateObject(hd,TEXTBOX,3,0,"",70,100,200,120,0,0);
CreateObject(hd,BUTTON,MyWinCommand_A,0,"Show A",10,130,90,155,0,0);
CreateObject(hd,BUTTON,MyWinCommand_B,0,"Show B",100,130,180,155,0,0);
SetObjVar(hd,(HAND)mydata);/* 设定对象的私有数据指针 */
}
return;
case GM_Destroy:
{
PMyWinData mydata=NULL;
mydata=(PMyWinData)GetObjVar(hd);/* Get Object Var */
Gfree(mydata,sizeof(MyWinData));
}
return;
default:return;
}
if(msg.type == GM_COMMAND)
{
char strbuf[257];
PMyWinData mydata=NULL;
mydata=(PMyWinData)GetObjVar(hd);/* 获得对象的私有数据指针 */
if(!mydata) return;
memset(strbuf,0,257);
switch(msg.message)
{
case MyWinCommand_A:
efTextBox->Text(mydata->a,strbuf);/* 获得文本框内容*/
efTextBox->Set(mydata->c,strbuf);/* 设定文本框内容 */
return;
case MyWinCommand_B:
efTextBox->Text(mydata->b,strbuf);
efTextBox->Set(mydata->c,strbuf);
return;
default:return;
}
}
}
int gmain(void*data) /* GUI 应用程序的入口,相当于 main 函数 */
{
CreateObject(0,MAINWINDOW,1,1,"Hello,World",10,10,400,400,MyMainWin,data);/* 创建对象 */
return 0;
}
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2007-5-15 19:52 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
25 楼』:
演示如何创建对象,使用菜单,多选框和对话窗口
/*
微型嵌入式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;
}
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2007-5-15 20:02 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
『第
26 楼』:
试过,不错~不过textbox的示例中,屏幕顶部会显示以下的start!等字啊~~~
是debug用的吧?
还有那个广告内容,还是去掉的好啊,只要好用大家自然会帮你好好宣传的
|
欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
2007-5-15 21:58 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
|
2007-5-23 20:36 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
『第
28 楼』:
不错,不过启动界面的进度条给人的感觉不好,为什么不肯全部去掉开始的广告呢?
如果实在不行,我认为保留结尾时的广告就足够了~~~
我有向朋友们推荐过这个开发库,可是大家都对程式中的广告不满....
|
欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
2007-5-24 08:49 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
29 楼』:
谢谢happybasic的关心和支持!
如果用黑色字体在屏幕底部显示 GUI 信息,可能更友好一些.
呵呵,再把拼音输入法也加上.最近有朋友开始用这个GUI开发启动光盘盘里的程序了.
to happybasic:
我一开始学的编程语言就是 Basic,呵呵.现在想起来刚学编程的情形,真的很有意思.
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2007-5-24 14:25 |
|
|
happybasic
中级用户
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
『第
30 楼』:
呵呵, 我也正因为是对Basic的喜爱,所以才开的happyBASIC小站,不过工作上基本上是以DJGPP/DOS or Borland C++ Builder/WIN为主了~
而Turbo C与QBasic都作为珍藏放在HD上,偶尔也用来做一些小程式~ 原来在QBasic中用过QBWIN, 一直希望出现类似于QBWIN的TC库... 你的这个库,刚好可以和QBWIN媲美了~~~
ps: QBWIN也没有任何的广告,可是也发展的很好啊~ 而Borland C/C++ 3.1的功能远比QB7强大,所以说你的这个库即使完全去掉广告,只能功能强大完全可以比QBWIN发展的更好!
|
欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
2007-5-24 19:04 |
|
|