China DOS Union

-- Unite DOS · Advance DOS · Grow DOS --

Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum
DOS stands for freedom, openness and progress. Let us work hard, learn from the openness and GNU spirit of FreeDOS and Linux, and together build and grow a free GNU GPL world!

中国DOS联盟论坛
The time now is 2026-06-26 03:20
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 100KB DOS Graphics Interface Development (Borland/DJGPP Library) DigestI View 41,855 Replies 111
Floor 16 Posted 2007-03-19 06:56 ·  中国 辽宁 大连 电信
中级用户
★★
www.ecgui.com
Credits 272
Posts 123
Joined 2006-09-23 07:38
19-year member
UID 63446
Status Offline
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
Floor 17 Posted 2007-03-19 07:05 ·  中国 江西 南昌 电信
中级用户
★★
Credits 486
Posts 171
Joined 2006-02-12 13:53
20-year member
UID 50233
Status Offline
Those who do not study the past are condemned to repeat it
Floor 18 Posted 2007-04-30 23:33 ·  中国 江苏 苏州 中移铁通
中级用户
★★
Credits 298
Posts 118
Joined 2006-03-01 13:30
20-year member
UID 51161
Status Offline
Bump it up!
欢迎光临happyBASIC小站:http://yxbasic.51.net
Floor 19 Posted 2007-05-01 00:27 ·  中国 江苏 苏州 中移铁通
中级用户
★★
Credits 298
Posts 118
Joined 2006-03-01 13:30
20-year member
UID 51161
Status Offline
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
Floor 20 Posted 2007-05-01 02:12 ·  中国 辽宁 大连 甘井子区 电信
中级用户
★★
www.ecgui.com
Credits 272
Posts 123
Joined 2006-09-23 07:38
19-year member
UID 63446
Status Offline
Attempt at GUI skin interface!

Link http://www.ecurb2006.com/blog/post/36.html

Blog: http://www.ecurb2006.com/

Thanks to the upstairs! Will consider removing the header display.
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
Floor 21 Posted 2007-05-09 12:32 ·  中国 湖北 武汉 电信
初级用户
Credits 115
Posts 6
Joined 2003-04-04 00:00
23-year member
UID 1398
Gender Male
Status Offline
Well done, keep up the good work
Floor 22 Posted 2007-05-13 19:26 ·  中国 山东 济宁 联通
中级用户
★★★
痴迷DOS者
Credits 456
Posts 570
Joined 2004-10-09 00:00
21-year member
UID 32281
Gender Male
Status Offline
Can it be made in the style of Win98?
Many people are not familiar with X-Window
DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青!uploadImages/20035317345478982.png
Floor 23 Posted 2007-05-14 22:03 ·  中国 辽宁 大连 电信
中级用户
★★
www.ecgui.com
Credits 272
Posts 123
Joined 2006-09-23 07:38
19-year member
UID 63446
Status Offline
Do you mean the interface?
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
Floor 24 Posted 2007-05-15 19:52 ·  中国 黑龙江 佳木斯 电信
中级用户
★★
www.ecgui.com
Credits 272
Posts 123
Joined 2006-09-23 07:38
19-year member
UID 63446
Status Offline
```
/*
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
Floor 25 Posted 2007-05-15 20:02 ·  中国 黑龙江 佳木斯 电信
中级用户
★★
www.ecgui.com
Credits 272
Posts 123
Joined 2006-09-23 07:38
19-year member
UID 63446
Status Offline
```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
Floor 26 Posted 2007-05-15 21:58 ·  中国 江苏 苏州 中移铁通
中级用户
★★
Credits 298
Posts 118
Joined 2006-03-01 13:30
20-year member
UID 51161
Status Offline
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
Floor 27 Posted 2007-05-23 20:36 ·  中国 辽宁 大连 电信
中级用户
★★
www.ecgui.com
Credits 272
Posts 123
Joined 2006-09-23 07:38
19-year member
UID 63446
Status Offline
Please go to http://www.ecurb2006.com to download!


It will be updated continuously!
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
Floor 28 Posted 2007-05-24 08:49 ·  中国 江苏 苏州 电信
中级用户
★★
Credits 298
Posts 118
Joined 2006-03-01 13:30
20-year member
UID 51161
Status Offline
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
Floor 29 Posted 2007-05-24 14:25 ·  中国 辽宁 大连 教育网
中级用户
★★
www.ecgui.com
Credits 272
Posts 123
Joined 2006-09-23 07:38
19-year member
UID 63446
Status Offline
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
Floor 30 Posted 2007-05-24 19:04 ·  中国 江苏 苏州 中移铁通
中级用户
★★
Credits 298
Posts 118
Joined 2006-03-01 13:30
20-year member
UID 51161
Status Offline
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
Forum Jump: