中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 100KB的DOS图形界面开发(Borland/DJGPP 库)
« [1] [2] [3] [4] [5] [6] [7] [8] »
作者:
标题: 100KB的DOS图形界面开发(Borland/DJGPP 库) 上一主题 | 下一主题
ecurb2006
中级用户

www.ecgui.com



积分 272
发帖 123
注册 2006-9-23
状态 离线
『第 76 楼』:  re:zqlcch



  Quote:
经过测试,现在已经很棒了!!

谢谢!

  Quote:
MsgBox函数ecurb2006兄偷懒了,为啥按钮显示的是YESNOONCANCEL而不是中文,当然,这个问题是小事

好的.修改一下.

  Quote:
最后一个:给控件加上热键功能吧,像其他GUI库那样,可以由用户指定。。比如按Alt+A是按按钮XX,按Alt+L是某列表框获得焦点等等............当然,这也可以用变通用方法解决,但会增加使用者的开发的时间。。。。

好的.会加上的.

非常感谢 zqlcch 的仔细测试!!
(我MSN:ecurb2006@hotmail.com,经常交流!)

[ Last edited by ecurb2006 on 2007-8-23 at 12:15 PM ]



eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
2007-8-23 12:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ecurb2006
中级用户

www.ecgui.com



积分 272
发帖 123
注册 2006-9-23
状态 离线
『第 77 楼』:  



  Quote:
继续提:SelBox有BUG,对某个项目双击会使选中的蓝条消失,但实际还是选中的。。。SelBox不支持键盘操作。

OK. i will do it tonight.



eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
2007-8-23 12:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ecurb2006
中级用户

www.ecgui.com



积分 272
发帖 123
注册 2006-9-23
状态 离线
『第 78 楼』:  综合例子1


/*
Example_1 - 对话窗口,按钮,文本编辑框 综合应用
使用自定义数据,SetObjVar,GetObjVar进行对象之间的信息交互
[url]www.ecub2006.com[/url]
*/
#include "gui.h"

typedef struct _MyWinData /* 自定义数据 */
{
char buf[256]; /* 用保存文本框的内容 */
HAND dlg_button;/* 对话窗口的OK按钮句柄*/
HAND dlg_textbox;/* 对话窗口的文本框句柄*/
}MyWinData,*PMyWinData;

void MyDialog(HAND hd,MESSAGE msg) /* 对话窗口的消息处理函数 */
{
PMyWinData pWin;/* 自定义数据的指针 */
HAND hdd=GetObjHost(hd); /* 获得主窗口的句柄*/
pWin=GetObjVar(hdd);/* 获得自定义数据 */
if(!pWin) return; /* 错误返回 */
if(msg.type == GM_SYSTEM) /* 系统类消息*/
        switch(msg.message)
        {
        case GM_Create:/* 创建文本框*/
                pWin->dlg_textbox=CreateObject(hd,TEXTBOX,4,1,"",10,40,150,60,0,0);
                /* 创建按钮 */
            pWin->dlg_button=CreateObject(hd,BUTTON,5,1,"OK",70,70,170,90,0,0);
                return;
        case GM_Destroy:
                return;
        default:
                return;
        }
if(msg.type == GM_COMMAND)/* 按钮消息*/
        switch(msg.message)
        {
        case 5:/* OK按钮 */
                efTextBox->Text(pWin->dlg_textbox,pWin->buf);/* 复制文本内容到buf*/
            efDialogWin->Quit(hd);/* 退出对话窗口 */
                return;
        default:
                return;
        }
}

void MyWin(HAND hd,MESSAGE msg)/* 主窗口消息处理函数 */
{
PMyWinData pWin;/* 自定义数据结构指针 */
if(msg.type == GM_SYSTEM) /* 系统类消息*/
        switch(msg.message)
        {
        case GM_Create:
                {
                /* 分配内存空间 */
                pWin=(PMyWinData)Gmalloc(sizeof(MyWinData),"");
                SetObjVar(hd,pWin);/* 设定对象的自定义数据 */
        /* 创建按钮 */
                CreateObject(hd,BUTTON,1,1,"输入",10,40,110,65,0,0);
                CreateObject(hd,BUTTON,2,1,"显示",10,70,110,95,0,0);
                }
                return;
        case GM_Destroy:
                {
                pWin=GetObjVar(hd);/* 获得自定义数据 */
                Gfree(pWin,sizeof(MyWinData));/* 释放内存空间 */
                }
                return;
        default:
                return;
        }
pWin=GetObjVar(hd);/* 获得自定义数据 */
if(!pWin) return;
if(msg.type == GM_COMMAND)
        switch(msg.message)
        {
        case 1:/* 启动一个对话窗口 */
                efDialogWin->Start(hd,3,1,"输入-对话窗口",10,40,200,140,MyDialog,0);
                return;
        case 2:/* 消息窗口 */
                MessageBox(hd,"信息",pWin->buf,MB_OK);
                return;
        default:
                return;
        }
}

int gmain(void *data)
{
        /* 创建窗口 */
        CreateObject(0,MAINWINDOW,1,1,"Ex1",10,10,630,300,MyWin,data);
        return 0;
}




eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
2007-8-23 12:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zqlcch
初级用户





积分 178
发帖 85
注册 2006-7-6
状态 离线
『第 79 楼』:  

装MSN去。。。

2007-8-25 22:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ecurb2006
中级用户

www.ecgui.com



积分 272
发帖 123
注册 2006-9-23
状态 离线
『第 80 楼』:  Dialog- 使用对话窗口,需要注意的地方。


/*
Dialog- 使用对话窗口,需要注意的地方。
[url]http://www.ecurb2006.[/url] com

当style 为 1 时,
如 : CreateObject(0,MAINWINDOW,1,1,"Test",20,40,620,440,MyWin,0);
当对话窗口类的消息处理函数收到GM_Close时,回自动关闭窗口,销毁窗口。

需要说明的是,GUI的消息分发机制是
先将消息发送要对象类的消息函数,
再发送到对象的消息处理函数。

在这种情况下,产生GM_Close ,先发送对象类消息处理函数,
因为style为1,自动关闭窗口,销毁对象,会产生新的GM_Destroy消息。
这时,对象类的消息处理部分结束。(主窗口MAINWINDOW与对话窗口Dialog style 效果相同)

根据消息分发机制,这时对象的消息处理函数才收到GM_Close,接着收到GM_Destroy消息。
所以会造成 先收到 GM_Destroy 消息,再收到 GM_Close 消息。

这样会不会造成错误呢 ?答案是,只要正确使用就不会出问题。

如果希望接受GM_Close,再判断是否退出 对话窗口,只需将 style 设置为 3 就可以了。
当 style 为2 时,对话窗口类的消息处理函数,不处理GM_Close消息。

所以这时,在对话窗口的消息消息处理函数中,GM_Close 中使用 efDialogWin->Quit(HAND);来退出就可以了,
如果没有使用,那么对话窗口就不会退出,也不会销毁。


调用efDialogWin->Quit(HAND)后,会产生GM_Destroy消息。

可以修改下面这个例子中的style 值(第76行),来观察实际运行效果,更明确的理解如果使用对话窗口。

所以说,开始一个对话窗口后,GM_Create,GM_Destroy 只会产生一次。
当style 为2的时候,GM_Close 有可能多次产生(没有调用efDialogWin->Quit(HAND);来退出)

这样,当创建了分配空间,建立私有数据时,请在 GM_Create 里分配空间,在 GM_Destroy 里销毁(释放).
*/

#include "../gui.h"

void MyDialog(HAND hd,MESSAGE msg)
{
void *buf;
if(msg.type == GM_SYSTEM)
switch(msg.message)
        {
        case GM_Create:
                MessageBox(hd,"GM_SYSTEM","GM_Create",0);
               
                return;
        case GM_Destroy:
                MessageBox(hd,"GM_SYSTEM","GM_Destroy",0);
                return;
    case GM_Close:
       MessageBox(hd,"GM_SYSTEM","GM_Close",0);
                return;
        default:
                return;
        }
}

void MyWin(HAND hd,MESSAGE msg)
{
if(msg.type == GM_SYSTEM)
switch(msg.message)
        {
        case GM_Create:
                CreateObject(hd,BUTTON,1,1,"Dialog",10,50,210,75,0,0);
                return;
        case GM_Destroy:
                return;
        default:
                return;
        }
if(msg.type == GM_COMMAND)
switch(msg.message)
        {
        case 1:/* 可以修改下面的style 值,来观察实际运行效果,更明确的理解如果使用对话窗口。 */
                efDialogWin->Start(hd,1,1,"MyDialog",10,30,180,200,MyDialog,0);
                /* efDialogWin->Start(hd,1,2,"MyDialog",10,30,180,200,MyDialog,0); */
                return;
        case 2:
                return;
        default:
                return;
        }
}

int gmain(void *data)
{
    CreateObject(0,MAINWINDOW,1,1,"Test",20,40,620,440,MyWin,0);
    return 0;
}




eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
2007-8-28 17:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ecurb2006
中级用户

www.ecgui.com



积分 272
发帖 123
注册 2006-9-23
状态 离线
『第 81 楼』:  Linux上的SDK发布了!!!!

http://www.ecurb2006.com/blog/upload/gui4linux.tar.gz

在Red Hat Linux 9 上测试的,需要Framebuffer支持!



eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
2007-9-9 21:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
agang220
初级用户





积分 39
发帖 20
注册 2007-9-11
状态 离线
『第 82 楼』:  

谢谢楼主

2007-9-11 17:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dongyongqiang
新手上路





积分 10
发帖 5
注册 2007-12-5
状态 离线
『第 83 楼』:  

Thank you very much!

2007-12-6 21:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
maclover815
初级用户





积分 92
发帖 47
注册 2007-12-7
状态 离线
『第 84 楼』:  强

支持一下,继续努力

2007-12-13 22:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ipc185
新手上路





积分 19
发帖 6
注册 2006-12-26
状态 离线
『第 85 楼』:  网站打不开了???

网站打不开了???

也无法下载,有新的下载地点吗?

谢谢!

2007-12-20 13:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ecurb2006
中级用户

www.ecgui.com



积分 272
发帖 123
注册 2006-9-23
状态 离线
『第 86 楼』:  

http://download.csdn.net/user/ecurb2006



eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
2007-12-21 21:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ecurb2006
中级用户

www.ecgui.com



积分 272
发帖 123
注册 2006-9-23
状态 离线
『第 87 楼』:  

微型嵌入式GUI - 归来!
正式启用新域名:
www.ecgui.com

即将推出新版本! eCGUI 1.0 Beta.

欢迎关注!



eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
2008-9-5 20:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ecurb2006
中级用户

www.ecgui.com



积分 272
发帖 123
注册 2006-9-23
状态 离线
『第 88 楼』:  eCGUI-0.1-Beta-for-DOS-16bit-下载

eCGUI-0.1-Beta-for-DOS-16bit-下载

下载页面:http://www.ecgui.com/html/ecgui/200809/11-30.html

编程指南:http://www.ecgui.com/ecurb2006/embedded-gui-programming-guide.pdf



eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
2008-9-11 22:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ecurb2006
中级用户

www.ecgui.com



积分 272
发帖 123
注册 2006-9-23
状态 离线
『第 89 楼』:  

上面的链接提供的库,是最新,最稳定的版本。
稍后,将推出带中文拼音输入法的库(在演示程序里有:)



eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
2008-9-12 00:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ecurb2006
中级用户

www.ecgui.com



积分 272
发帖 123
注册 2006-9-23
状态 离线
『第 90 楼』:  eCGUI-0.2-Beta-for-DOS-16bit-下载

0.2 版本发布了!

更新了拼音输入法!
实现了DOS应用程序的完全中文(显示,输入编辑)图形界面操作。

eCGUI下载中心:http://www.ecgui.com/html/ecgui/35.html



eCGUI下载中心:http://www.ecgui.com/html/ecgui/35.html

[ Last edited by ecurb2006 on 2008-9-18 at 08:13 PM ]



eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
2008-9-18 20:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] [6] [7] [8] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: