|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
|
2008-10-25 20:03 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
92 楼』:
JPEG图像显示例子
/*
Jpeg - JPG图像显示,及桌面背景的更换
Website:[url]www.ecgui.com[/url]
E-mail:ecgui.com@ecgui.com
*/
#include "gui.h" /* GUI 的头文件 */
void MyJPG(HAND hd,MESSAGE msg)
{
if(msg.type == GM_SYSTEM) /* 判断消息类型,消息类型全部为大写 */
switch(msg.message) /* 判断消息 */
{
case GM_Draw:
{
HDC hdc;
IMAGE img;/* Image 图像结构 */
hdc=efGDI->Start(msg.pHOST);/* 获得 HDC 绘图句柄,开始绘图 */
img.filename="logo.jpg"; /* 图像文件名 */
img.type=IMAGE_TYPE_JPG;/* 文件类型*/
img.hdc=hdc;/* 绘图句柄 */
efImage->Load(&img);/* 初步读图像信息 */
efImage->Show(&img,0,0);/* 显示图像 */
efGDI->End(msg.pHOST,hdc); /* 释放 HDC 绘图句柄 */
}
return;
default:break;
}
}
void imgjpg_init(void); /*函数声明: 注册JPEG图像函数支持*/
HDC StartDesktopDraw(void); /* 函数声明:获得 桌面 HDC 绘图句柄,开始绘图 */
void EndDesktopDraw(HDC); /*函数声明: 释放桌面 HDC 绘图句柄 */
int gmain(void *data) /* GUI程序 的入口函数 */
{
imgjpg_init();/* *注册JPEG图像函数支持*/
{
HDC hdc;/* HDC 绘图句柄 */
IMAGE img; /* Image 图像结构 */
hdc=StartDesktopDraw();/* 获得 桌面 HDC 绘图句柄,开始绘图 */
img.filename="alizee.jpg"; /* 图像文件名 */
img.type=IMAGE_TYPE_JPG; /* 文件类型*/
img.hdc=hdc; /* 绘图句柄 */
efImage->Load(&img); /* 初步读图信息 */
efImage->Show(&img,0,0); /* 显示图像 */
EndDesktopDraw(hdc); /* 释放桌面 HDC 绘图句柄 */
}
/* 创建一个主窗口 */
CreatObject(0,MAINWINDOW,1,1,"JEPG Picture - Power by eCGUI-www.ecgui.com",5,10,510,570,MyJPG,data);
return True;
}
/* ************** End of file **************** */ ;编译
bcc -mh jpeg.c lib\gui.lib lib\libjpeg.lib
;最好再使用upx.exe 压缩一下,在开发包的_up 目录中有upx.exe
_up\upx -5 jpeg.exe
运行结果
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2008-10-25 23:31 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
|
2008-10-27 09:14 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
94 楼』:
0.4 Beta- 对话窗口嵌套调用,多窗口切换支持
因为这些api接口,可能还要做一些改进。
有兴趣参与测试的朋友,可以发邮件到ecgui.com@gmail.com .可以先发给你。
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2008-11-9 11:26 |
|
|
crazii
新手上路
积分 16
发帖 8
注册 2008-9-6
状态 离线
|
『第
95 楼』:
我打不开eCGUI的网站.
难道已经仙逝了....
|
|
2008-11-11 13:37 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
|
2008-11-11 15:46 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
|
2008-11-30 10:59 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
98 楼』:
平铺式多窗口支持 (内测版)
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2008-12-1 07:17 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
99 楼』:
CGUI微型嵌入式GUI -QQ群 76249907
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2008-12-22 15:49 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
100 楼』:
eCFileMan文件管理器0.1版-Alpha
eCFileMan目标是成为一个基于eCGUI的图形文件管理器。能够在春DOS下运行,方便DOS下的文件管理操作。
目前还处于测试开发阶段。这里提供代码。目前仅实现了,文件列表现实。
代码分成两个文件:ecfm.c list.c
/* ------------- ecfm.c - start */
/*
Copyright (C) 2008 ecGUI Developers
All rights reserved.
Website: [url]www.ecgui.com[/url]
Info: [email]ecgui.com@gmail.com[/email]
-- list.c ---
*/
#include "gui.h"
#include "list.c"
#define ITEM_NUM 6 /* 项目数*/
typedef struct _eCFMData
{
HAND urlbox[2];
}eCFMData,*PeCFMData;
eCFileMan Gecfm_buf;
PeCFileMan Gecfm=&Gecfm_buf;
char buf[256];
void eCFMWin(HAND hd,MESSAGE msg)
{
HAND box,button;/* 句柄 */
PMENU pm;
int i;
if(msg.type==GM_SYSTEM)
switch(msg.message)
{
case GM_Create:
CreateObject(hd,TEXTBOX,1,1,"",5,40,315,60,0,0);
box=CreateObject(hd,SELBOX,1,1,"",5,65,315,400,0,0); /* 创建 选择框 对象 */
#if 0
pm=(PMENU)malloc(sizeof(MENU)*ITEM_NUM*2);
for(i=0;i<12;i++)
{
pm->szTitle="a";
efSelBox->Add(box,pm); /* 添加子项 */
pm++;
}
#endif
{
PLIST pl=NULL;
PFileList pfl;
scandir(Gecfm,"");
for(pl=Gecfm->pDirListHead;pl!=NULL;pl=pl->pNEXT)
{
pfl=(PFileList)pl->pData;
if(pfl->type==FT_DIR)
//printf("<%s>\n",pfl->name);
//sprintf(pfl->name,"<%s>",pfl->name);
{
sprintf(buf,"<%s>",pfl->name);
strcpy(pfl->name,buf);
pfl->item.szTitle=pfl->name;
efSelBox->Add(box,&(pfl->item));
}
}
pl=Gecfm->pFileListHead;
pl=pl->pNEXT->pNEXT;
for(;pl!=NULL;pl=pl->pNEXT)
{
pfl=(PFileList)pl->pData;
if(pfl->type==FT_FILE)
{
//sprintf(buf,"<%s>",pfl->name);
//strcpy(pfl->name,buf);
pfl->item.szTitle=pfl->name;
efSelBox->Add(box,&(pfl->item));
}
}
for(pl=Gecfm->pDirListHead;pl!=NULL;pl=pl->pNEXT)
{
pfl=(PFileList)pl->pData;
if(pfl->type==FT_FILE)
{
//sprintf(buf,"<%s>",pfl->name);
//strcpy(pfl->name,buf);
pfl->item.szTitle=pfl->name;
efSelBox->Add(box,&(pfl->item));
}
}
}
break;
case GM_Draw:
break;
default:
break;
}
}
int gmain(void *data) /* GUI程序 的入口函数 */
{
/* 创建一个主窗口 */
CreatObject(0,MAINWINDOW,1,1,"eCFileMan 0.1 Beta(081213)",0,0,640,480,eCFMWin,data);
return True;
}
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2008-12-24 08:20 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
101 楼』:
/* ********** list.c -start ***********/
/*
Copyright (C) 2008 ecGUI Developers
All rights reserved.
Website: www.ecgui.com
Info: ecgui.com@gmail.com
-- list.c ---
*/
#include <stdio.h>
#include <dir.h>
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FT_FILE 0
#define FT_DIR 1
typedef struct _LIST{
void *pData;
struct _LIST *pPRE;
struct _LIST *pNEXT;
}LIST,*PLIST;
PLIST addList(PLIST p,void *pData)
{
PLIST plnew=NULL,pl;
plnew=(PLIST)malloc(sizeof(LIST));
if(plnew==NULL) return NULL;
if(p==NULL)
{
plnew->pPRE=NULL;
plnew->pNEXT=NULL;
plnew->pData=pData;
return (plnew);
}
pl=p;
while(pl->pNEXT!=NULL) pl=pl->pNEXT;
plnew->pPRE=pl;
plnew->pNEXT=NULL;
plnew->pData=pData;
pl->pNEXT=plnew;
return(plnew);
}
PLIST insertList(PLIST pl,void *pData)
{
PLIST pn=NULL;
pn=(PLIST)malloc(sizeof(LIST));
if(pn==NULL) return NULL;
pn->pData=pData;
pn->pPRE=pl;
pn->pNEXT=NULL;
if(pl)
{
pn->pNEXT=pl->pNEXT;
pl->pNEXT=pn;
if(pl->pNEXT)
{
pl->pNEXT->pPRE=pn;
}
}
return pn;
}
PLIST delList(PLIST pl)
{
PLIST next=NULL;
if(pl == NULL) return 0;
next=pl->pNEXT;
if(pl->pNEXT)
(pl->pNEXT)->pPRE=pl->pPRE;
if(pl->pPRE)
(pl->pPRE)->pNEXT=pl->pNEXT;
free(pl);
pl=NULL;
return next;
}
typedef struct _FileList
{
int struct_size;
int type; /* 0 : File 1:Dir */
char name[256];
int size;
MENU item;
}FileList,*PFileList;
typedef struct _eCFileMan
{
PLIST pFileListHead;
PLIST pFileListTail;
PLIST pDirListHead;
PLIST pDirListTail;
}eCFileMan,*PeCFileMan;
void AddFile(PeCFileMan ecfm,int type,char *name,int size)
{
PFileList nf;
if(!ecfm) return;
nf=malloc(sizeof(FileList));
memset(nf,0,sizeof(FileList));
nf->struct_size=sizeof(FileList);
nf->type=type;
strcpy(nf->name,name);
nf->size=size;
if(type==FT_FILE)
{
if(!ecfm->pFileListHead)
ecfm->pFileListTail=ecfm->pFileListHead=insertList(NULL,nf);
else ecfm->pFileListTail=insertList(ecfm->pFileListTail,nf);
}
else if(type == FT_DIR)
{
if(!ecfm->pDirListHead)
ecfm->pDirListTail=ecfm->pDirListHead=insertList(NULL,nf);
else ecfm->pDirListTail=insertList(ecfm->pDirListTail,nf);
}
}
int scandir(PeCFileMan ecfm,char *dirname)
{
DIR *dir;
struct dirent *ent;
int type;
struct ffblk ffblk;
int done;
PLIST pl=NULL;
PFileList pfl;
//printf("First pass on '%s':\n",dirname);
if ((dir = opendir(dirname)) == NULL)
{
//perror("Unable to open directory");
//exit(1);
return 0;
}
AddFile(ecfm,FT_DIR,"..",0);
while ((ent = readdir(dir)) != NULL)
{
//printf("%s\n",ent->d_name);
#if 1
if(strstr(ent->d_name,"."))
type=FT_FILE;
else {type=FT_DIR; /* printf("\n-dir-\n"); */}
AddFile(ecfm,type,ent->d_name,0);
#endif
}
/*
printf("Second pass on '%s':\n",dirname);
rewinddir(dir);
while ((ent = readdir(dir)) != NULL)
printf("%s ",ent->d_name);
*/
if (closedir(dir) != 0);
// perror("Unable to close directory");
done = findfirst("*.",&ffblk,0);
while (!done)
{
//printf("%s\n", ffblk.ff_name);
for(pl=ecfm->pDirListHead;pl!=NULL;pl=pl->pNEXT)
{
pfl=(PFileList)pl->pData;
//printf("%s = %s \n",pfl->name,ffblk.ff_name);
if(strcmp(pfl->name,ffblk.ff_name)==0)
pfl->type=FT_FILE;
//else printf("%s\n",pfl->name);
}
done = findnext(&ffblk);
}
return 1;
}
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2008-12-24 08:21 |
|
|
ynlc
新手上路
积分 6
发帖 3
注册 2008-12-15
状态 离线
|
|
2009-2-21 11:30 |
|
|
zyl20028246
新手上路
积分 8
发帖 4
注册 2008-10-30
状态 离线
|
|
2009-2-24 19:20 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
|
2009-2-25 21:19 |
|
|
ecurb2006
中级用户
www.ecgui.com
积分 272
发帖 123
注册 2006-9-23
状态 离线
|
『第
105 楼』:
eCGUI 新版截图
控件全面支持皮肤功能
|
eCGUI-微型嵌入式GUI/ DOS/Linux/uC/OS-II/等 图形界面开发
www.ecgui.com
|
|
2009-4-4 10:43 |
|
|