OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 14153|回复: 6

VC2010下移植ZLGGUI LCD模拟

[复制链接]

105

主题

518

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1387
金钱
1387
注册时间
2012-10-23
在线时间
97 小时
发表于 2015-8-9 12:13:17 | 显示全部楼层 |阅读模式
VC2010下用了EasyX库模拟LCD,VC2010 控制台程序
并移植ZLGGUI,只调用了库中基本的画点函数作为ZLGGUI的底层,便于移植到下位机进行绘图。

ZLGGUI 是一个轻量级的GUI 系统,适合于单色、彩色屏幕,对CPU要求不高,并且占用资源少

移植只需要添加3个文件lcd_driver.h lcd_driver.c config.h

lcd_driver.c中的一些示例:
在这个驱动文件中,需要定义几个函数:画点、取点、画水平线、画垂直线、画任意两点线四个函数,且要和Gui_basic.h中的函数声明符合
在lcd_driver.c/h  中还需要定义两个宏(函数):GUI_CmpColor和GUI_CopyColor,注意这两个宏需要根据LCD的显示类型来定义,单色屏和彩色屏不同
lcd_driver.h中的一些示例:
/* 定义LCM像素数宏 */
#define  GUI_LCM_XMAX 640 //自行修改 /* 定义液晶x轴的像素数 */
#define  GUI_LCM_YMAX 480 //自行修改
/* 定义颜色数据类型(可以是数据结构) */
#define  TCOLOR  uint16 //自行修改,原来是 uint8 
//这两个宏根据LCD的像素位数不同而不同,以 下是彩色屏定义
#define  GUI_CmpColor(color1, color2) ((color1) == (color2))
#define  GUI_CopyColor(color1, color2)  ((*color1) = (color2))
//单色屏定义
#define  GUI_CmpColor(color1, color2) ( (color1&0x01) == (color2&0x01) )
#define  GUI_CopyColor(color1, color2)  ((*color1) =( color2&0x01))


config.h主要包含一些头文件和数据类型的定义
config.h中的一些示例:
typedef unsigned char  uint8;                    /* 无符号8位整型变量  */
typedef signed   char  int8;                    /* 有符号8位整型变量  */
typedef unsigned short uint16;                   /* 无符号16位整型变量 */
typedef signed   short int16;                   /* 有符号16位整型变量 */
typedef unsigned int   uint32;                   /* 无符号32位整型变量 */
typedef signed   int   int32;                   /* 有符号32位整型变量 */
typedef unsigned short TCOLOR;
//包含文件,根据工程的环境来包含
#include    "GUI_CONFIG.H"
#include    "LCDDRIVE.H"
#include    "GUI_BASIC.H"
#include    "GUI_STOCKC.H"
#include    "FONT_MACRO.H"
#include    "FONT5_7.H"
#include    "FONT8_8.H"
#include    "FONT24_32.H"
#include    "LOADBIT.H"
#include    "WINDOWS.H"
#include    "MENU.H"
#include    "SPLINE.H"



//////////////////////////////////////////////////////


////////////////////////////////////////



对VC不是很熟悉,在移植中对颜色处理有点bug,颜色值没有对应,下位机一般都用的16位色,所以也出现了一定的差异。
基本绘图没什么问题。
更新了一下主函数中的字符转换,去掉了_T的转换
/************************************
主函数
************************************/
void main()
{
int i;
WINDOWS demow;
char text[] = "ZLG-GUI demo LEASE ENTER ESC TO QUIT";

GUI_Initialize();
GUI_SetColor(RED, 0);
demow.x = 20;
demow.y = 10;
demow.with = 130;
demow.hight = 200;
demow.title = (unsigned char*)("// VC2010 //");
demow.state = (unsigned char*)("Status Bar");
GUI_WindowsDraw(&demow);


GUI_SetColor(CYAN, 0);
demow.x = 170;
demow.y = 10;
demow.with = 130;
demow.hight = 200;
demow.title = (uint8 *)(("ZLG-GUI for VC2010"));
demow.state = (uint8 *)("VC2010 ZLGGUI DEMO");
GUI_WindowsDraw(&demow);

GUI_SetColor(GREEN, 0);
demow.x = 320;
demow.y = 10;
demow.with = 130;
demow.hight = 200;
demow.title =(UINT8 *)("VC2010 ZLGGUI DEMO");
demow.state =(UINT8 *)("VC2010 ZLGGUI DEMO");
GUI_WindowsDraw(&demow);

GUI_SetColor(MAGENTA, 0);
GUI_Button_OK(330, 170);
GUI_Button_Cancle(390, 170);

GUI_Ellipse(30, 140, 120, 160, 0xf000);

GUI_RectangleFill(190, 120, 280, 160, LIGHTBLUE);

GUI_SetColor(YELLOW,0);
for (i = 0; i < strlen(text); i++)
GUI_PutChar8_8(70 + i * 8, 232, text);


GUI_RectangleFill(0, 250, 479, 260, YELLOW);
GUI_SetColor(0,WHITE);
for (i = 0; i < strlen(text); i++)
GUI_PutChar8_8(70 + i * 8, 252, text);

EasyX压缩包安装说明

系统支持

操作系统版本:Windows 2000 及以上操作系统。
编译环境版本:Visual C++ 6.0 / Visual C++ 2008 ~ 2013(x86 & x64)。

安装

请先将下载的压缩包解压缩,然后执行 Setup.hta,并跟随提示安装。

安装程序会检测您已经安装的 VC 版本,并根据您的选择将对应的 .h 和 .lib 文件安装至 VC 的 include 和 lib 文件夹内。安装程序不会修改注册表或者您本机的任何文件。

如果您需要手动安装,请根据下面的文件列表说明将安装包里的相关文件分别拷贝到 VC 对应的 include 和 lib 文件夹内,或者将 include 和 lib 文件夹放到任意位置,然后修改 VC 中的 Lib 和 Include 的引用路径。

卸载

由于安装程序并不改写注册表,因此您在“添加删除程序”中不会看到 EasyX 的卸载项。如需卸载,请执行相应版本的 Setup.hta,并根据提示卸载。也可以手动将相关的 .h 和 .lib 删除,系统中不会残留任何垃圾信息。

文件列表说明

下载的压缩包里文件列表及对应说明如下:

压缩包

├ include <文件夹>

│ ├ easyx.h // 头文件

│ └ graphics.h // 头文件(模拟 BGI 绘图库)

├ lib <文件夹>

│ ├ amd64 <文件夹>

│ │ ├ easyx.lib // VC2008 ~ 2013 MBCS 库文件(x64)

│ │ └ easyxw.lib // VC2008 ~ 2013 Unicode 库文件(x64)

│ ├ easyx6.lib // VC6 MBCS 库文件

│ ├ easyxw6.lib // VC6 Unicode 库文件

│ ├ easyx.lib // VC2008 ~ 2013 MBCS 库文件(x86)

│ └ easyxw.lib // VC2008 ~ 2013 Unicode 库文件(x86)

├ EasyX_Help.chm // 帮助文件

└ Setup.hta // 安装程序

项目依赖

EasyX 库采用静态链接方式,不会为您的程序增加任何额外的 DLL 依赖。

 


easyx LCD模拟器.7z

8.54 MB, 下载次数: 981

EasyX_2014冬至版.zip

576.87 KB, 下载次数: 374

ZLG_GUI.pdf

57.52 KB, 下载次数: 373

ZLG_GUI源码.zip

34.75 KB, 下载次数: 359

GUI应用基础.PDF

3.27 MB, 下载次数: 811

回复

使用道具 举报

120

主题

7861

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12011
金钱
12011
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-8-9 12:51:35 | 显示全部楼层
谢谢分享!!!
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

88

主题

7369

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-8-9 21:11:09 | 显示全部楼层
多谢分享,ZLG也做GUI库了啊
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

527

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165778
金钱
165778
注册时间
2010-12-1
在线时间
2124 小时
发表于 2015-8-9 21:35:51 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子产品购买店铺:https://zhengdianyuanzi.tmall.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2019-5-16
在线时间
9 小时
发表于 2019-12-2 20:14:40 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2020-8-3
在线时间
0 小时
发表于 2020-8-3 09:04:41 | 显示全部楼层
感谢分享!
回复 支持 反对

使用道具 举报

0

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2011-11-14
在线时间
130 小时
发表于 2022-6-22 10:57:17 | 显示全部楼层

感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-10-12 20:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表