OpenEdv-开源电子网

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

VC2010下移植ZLGGUI LCD模拟

[复制链接]

105

主题

522

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1386
金钱
1386
注册时间
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, 下载次数: 976

EasyX_2014冬至版.zip

576.87 KB, 下载次数: 370

ZLG_GUI.pdf

57.52 KB, 下载次数: 364

ZLG_GUI源码.zip

34.75 KB, 下载次数: 352

GUI应用基础.PDF

3.27 MB, 下载次数: 808

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

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

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2015-8-9 21:35:51 | 显示全部楼层
谢谢分享....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.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 | 显示全部楼层

感谢分享!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 22:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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