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 依赖。
|