|
ecurb2006
中级用户
   www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第 16 楼』:
恩。不打算支持窗口重叠。
使用 LLM 解释/回答一下
打算支持更有用的功能,如 Unicode 编码支持!
ps:任务拦切换也很方便哦
Plan to support more useful functions, such as Unicode encoding support!
ps: The taskbar switching is also very convenient哦
|

eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2007-3-19 06:56 |
|
|
henrya2
中级用户
  
积分 486
发帖 171
注册 2006-2-12
状态 离线
|
『第 17 楼』:
使用 LLM 解释/回答一下
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
状态 离线
|
『第 19 楼』:
使用 LLM 解释/回答一下
试过了,并比较了一下以下的GUI开发库
1.实时微内核:最新图形模式多窗口演示
http://www.cn-dos.net/forum/viewthread.php?tid=16538&fpage=1
2.DOS的界面开发终结者
http://www.cn-dos.net/forum/viewthread.php?tid=14489&fpage=1
其中1.运行效果不好,而且不稳定,2.的功能确实很强大,但同时体积也太大
还是老兄的DOS GUI开发(Borland库)功能也不错,体积也很小,而且UI也是
三个当中最好的,支持!!
不过程序显示区域头部显示 GUI 的介绍性信息,不太好,而且影响用用户的程
式美观,建议还是去掉为好.... 再说,这对推广的作用也不大。关键是好用,大家
自然会都去用。。用的好的也会帮你推广!
I've tried and compared the following GUI development libraries:
1. Real-time microkernel: Latest graphical mode multi-window demonstration
http://www.cn-dos.net/forum/viewthread.php?tid=16538&fpage=1
2. The terminator of DOS interface development
http://www.cn-dos.net/forum/viewthread.php?tid=14489&fpage=1
Among them, the running effect of 1 is not good and it's unstable. The function of 2 is indeed very powerful, but at the same time, the volume is too large. Your DOS GUI development (Borland library) also has good functions, the volume is very small, and the UI is also the best among the three. I support it!!
However, the introductory information of GUI is displayed at the top of the program display area, which is not good and affects the beauty of the user's program. It is suggested to remove it as well.... Besides, this has little effect on promotion. The key is to be easy to use, and everyone will naturally use it. Those who use it well will also help you promote it!
|

欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
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 楼』:
使用 LLM 解释/回答一下
可不可以做成Win98样式?
X-Window有许多人不熟悉
Can it be made in the style of Win98?
Many people are not familiar with X-Window
|

DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青!uploadImages/20035317345478982.png |
|
2007-5-13 19:26 |
|
|
ecurb2006
中级用户
   www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
|
2007-5-14 22:03 |
|
|
ecurb2006
中级用户
   www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第 24 楼』:
演示如何创建对象,使用TEXTBOX文本框
使用 LLM 解释/回答一下
/*
微型嵌入式GUI - 应用开发
Website: www.ecurb2006.com
演示如何创建对象,使用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 编程指南(http://www.ecurb2006.com)
*/
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;
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;
}
```
/*
Micro Embedded GUI - Application Development
Website: www.ecurb2006.com
Demonstrates how to create objects and use the TEXTBOX text box.
*/
#include "gui.h"
#define MyWinCommand_A 4 /* ID of the button */
#define MyWinCommand_B 5
/* Private data, can be used to save the handle of the object */
/* The handle is essentially a pointer to a structure (struct) */
typedef struct _MyWinData
{
HAND a;
HAND b;
HAND c;
}MyWinData,*PMyWinData;
/*
USER_PRO is a simple macro definition
#define USER_PRO void
Indicates that it is the object message processing function
HAND is the object handle
MEEAGE is the message structure
For more details, please refer to the Micro Embedded GUI Programming Guide ( http://www.ecurb2006.com)
*/
USER_PRO MyMainWin(HAND hd,MESSAGE msg)
{
if(msg.type == GM_SYSTEM)/* First determine the message type */
switch(msg.message)
{
case GM_Draw:/* This message is generated when the object is displayed (or redrawn)*/
{
HDC hdc; /* HDC is the graphics device handle */
PefGDITag g=efGDI;
/*
efGDI is the drawing class, one of the operation methods of the ef class,
In the entire GUI, the object classes all use this API encapsulation method, with unified and simple interface
*/
hdc=g->Start(hd);/* Start drawing */
g->SetColor(hdc,COLOR_BLACK); /* Set color */
g->DrawText(hdc,5,50,"Input a");/* Output text */
g->DrawText(hdc,5,75,"Input b");
g->DrawText(hdc,5,100,"Show");
g->End(hd,hdc); /* End drawing */
}
return;
case GM_Create: /* Message generated after the object is created, some initialization operations can be completed here */
{
PMyWinData mydata=NULL;
mydata=(PMyWinData)Gmalloc(sizeof(MyWinData),"");/* Allocate memory */
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);/* Set the private data pointer of the object */
}
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;
PMyWinData mydata=NULL;
mydata=(PMyWinData)GetObjVar(hd);/* Get the private data pointer of the object */
if(!mydata) return;
memset(strbuf,0,257);
switch(msg.message)
{
case MyWinCommand_A:
efTextBox->Text(mydata->a,strbuf);/* Get the content of the text box*/
efTextBox->Set(mydata->c,strbuf);/* Set the content of the text box */
return;
case MyWinCommand_B:
efTextBox->Text(mydata->b,strbuf);
efTextBox->Set(mydata->c,strbuf);
return;
default:return;
}
}
}
int gmain(void*data) /* Entry of the GUI application, equivalent to the main function */
{
CreateObject(0,MAINWINDOW,1,1,"Hello,World",10,10,400,400,MyMainWin,data);/* Create object */
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 楼』:
演示如何创建对象,使用菜单,多选框和对话窗口
使用 LLM 解释/回答一下
/*
微型嵌入式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);/* 添加菜单子项 */
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;
}
```c
/*
Micro-Embedded GUI - Application Development
Website: www.ecurb2006.com
Demonstrates how to create objects, use menus, checkboxes, and dialog windows
*/
#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); /* Create button */
md->a = CreateObject(hd, CHECKBOX, 1, 1, "Hello", 10, 120, 100, 140, 0, 0);/* Create checkbox */
md->menu = CreateObject(hd, MAINMENU, 1, 1, "Menu", 160, 40, 220, 60, 0, 0);/* Create dialog window */
for (i = 0; i < 3; i++)
efMainMenu->Add(md->menu, &mymenu);/* Add menu items */
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)) /* Get checkbox state */
efDialogWin->Start(hd, 0, 0, "Selected!", 50, 50, 200, 200, 0, 0); /* Start dialog window */
else efDialogWin->Start(hd, 0, 0, "Not selected!", 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 楼』:
使用 LLM 解释/回答一下
试过,不错~不过textbox的示例中,屏幕顶部会显示以下的start!等字啊~~~
是debug用的吧?
还有那个广告内容,还是去掉的好啊,只要好用大家自然会帮你好好宣传的
Tried it, it's good~ But in the example of the textbox, words like "start!" will be displayed at the top of the screen~~~ Is it for debugging?
And that advertisement content, it's better to remove it. As long as it works well, everyone will naturally promote it for you
|

欢迎光临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 楼』:
使用 LLM 解释/回答一下
不错,不过启动界面的进度条给人的感觉不好,为什么不肯全部去掉开始的广告呢?
如果实在不行,我认为保留结尾时的广告就足够了~~~
我有向朋友们推荐过这个开发库,可是大家都对程式中的广告不满....
Not bad, but the progress bar on the startup interface gives a bad feeling. Why not remove all the initial ads?
If it's really not possible, I think keeping the ads at the end is enough~~~
I have recommended this development library to my friends, but everyone is dissatisfied with the ads in the program....
|

欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
2007-5-24 08:49 |
|
|
ecurb2006
中级用户
   www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第 29 楼』:
使用 LLM 解释/回答一下
谢谢happybasic的关心和支持!
如果用黑色字体在屏幕底部显示 GUI 信息,可能更友好一些.
呵呵,再把拼音输入法也加上.最近有朋友开始用这个GUI开发启动光盘盘里的程序了.
to happybasic:
我一开始学的编程语言就是 Basic,呵呵.现在想起来刚学编程的情形,真的很有意思.
Thanks for happybasic's care and support!
It might be more user-friendly to display GUI information at the bottom of the screen in black font.
Hehe, also add the Pinyin input method. Recently, some friends have started using this GUI to develop programs on the bootable CD.
to happybasic:
The first programming language I learned was Basic, hehe. Now when I think of the situation when I first started programming, it's really interesting.
|

eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2007-5-24 14:25 |
|
|
happybasic
中级用户
  
积分 298
发帖 118
注册 2006-3-1
状态 离线
|
『第 30 楼』:
使用 LLM 解释/回答一下
呵呵, 我也正因为是对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发展的更好!
Hehe, I also opened the happyBASIC site precisely because of my love for Basic. But in terms of work, it's basically centered around DJGPP/DOS or Borland C++ Builder/WIN.
And Turbo C and QBasic are both kept as treasures on the HD, and I occasionally use them to make some small programs. I originally used QBWIN in QBasic and always hoped to have a TC library similar to QBWIN... Your this library just can be comparable to QBWIN.
ps: QBWIN also has no ads, but it has developed very well too. And the functions of Borland C/C++ 3.1 are far more powerful than QB7. So I say that even if your this library completely removes the ads, as long as it is powerful enough, it can definitely develop better than QBWIN!
|

欢迎光临happyBASIC小站:http://yxbasic.51.net |
|
2007-5-24 19:04 |
|
|