3.emWin5.26(ucGui)VS2008 2-D图形库-基本绘图【Worldsing笔记】

UCGUI(emWin) 2-D图形库——之基本板绘图,在ucgui的基本绘图功能上来看,功能还是比较全的,本例程主要使用基本的接口,两个主要的概念是绘制(draw)和填充(Fill),这两的区别是一个空心的,另一个是实心的,用时注意加于区分,另一个值得注意的是绘制模式,GUI_SetDrawMode(),目前emWin5.2有两模式,一个是正常的绘制,另一个是取反的方式绘制。

?

例程代码下载:3.emWin5.26(ucGui)VS2008 2-D图形库-基本绘图.zip

?

GUI_GetPixelIndex() 返回给定位置的颜色指数。

?

绘制模式

GUI_GetDrawMode() 返回当前的绘制模式。

GUI_SetDrawMode() 设置绘制模式。

?

画笔大小

GUI_GetPenSize() 返回当前的画笔大小 (像素)。

GUI_SetPenSize() 设置画笔大小 (像素)。

?

查询当前客户区矩形

GUI_GetClientRect() 返回当前可用的绘制区域。

?

基本绘制例程

GUI_ClearRect() 为矩形区域填充背景颜色。

GUI_CopyRect() 复制显示器中的一个矩形区域。

GUI_DrawGradientH() 绘制用水平颜色梯度填充的矩形。

GUI_DrawGradientV() 绘制用垂直颜色梯度填充的矩形。

GUI_DrawGradientRoundedH() 绘制用水平颜色梯度填充的圆角矩形。

GUI_DrawGradientRoundedV() 绘制用垂直颜色梯度填充的圆角矩形。

GUI_DrawPixel() 绘制单个像素。

GUI_DrawPoint() 绘制点。

GUI_DrawRect() 绘制矩形。

GUI_DrawRectEx() 绘制矩形。

GUI_DrawRoundedFrame() 绘制圆角框。

GUI_DrawRoundedRect() 绘制圆角矩形。

GUI_FillRect() 绘制填充的矩形。

GUI_FillRectEx() 绘制填充的矩形。

GUI_FillRoundedRect() 绘制填充的圆角矩形。

GUI_InvertRect() 倒转矩形区域。

?

下面针对以上的每个接口的使用方法写个例程

?

#include
"GUI.h"

#include
"WM.h"

?

#include
"CHECKBOX.h"

#include
"FRAMEWIN.h"

#include
"PROGBAR.h"

#include
"TEXT.h"

#include
"BUTTON.h"

#include
"SLIDER.h"

#include
"HEADER.h"

#include
"GRAPH.h"

#include
"ICONVIEW.h"

#include
"LISTVIEW.h"

#include
"TREEVIEW.h"

?

void MainTask(void) {

int Sec = 60;

int state;

GUI_RECT exRect = {220,40, 300, 50};

#if GUI_WINSUPPORT

WM_SetCreateFlags(WM_CF_MEMDEV);

#endif

GUI_Init();

#if GUI_WINSUPPORT

WM_MULTIBUF_Enable(1);

#endif

while(1)

{

GUI_GotoXY(0,0);

//延时

GUI_Delay(90);

Sec++;

Sec %= 61;

state = Sec % 4;

switch(state)

{

case 0:

????GUI_DispString("0 - ");break;

case 1:

????GUI_DispString("1 / ");break;

case 2:

????GUI_DispString("2 | ");break;

case 3:

????GUI_DispString("3 \\ "); break;

}

GUI_DispString("\nGUI_GetPixelIndex:");

GUI_DispDecMin(GUI_GetPixelIndex(0, 0));

GUI_DispString(" GUI_GetDrawMode:");

GUI_DispDecMin(GUI_GetDrawMode());

//默认的绘图模式

GUI_SetDrawMode(GUI_DRAWMODE_NORMAL);

//在x=250,y=10位置填充半径为的圆

GUI_FillCircle(20, 10, 10);

//反转的的绘图模式

GUI_SetDrawMode(GUI_DRAWMODE_XOR);

//在x=280,y=10位置填充半径为的圆

GUI_FillCircle(280, 10, 10);

//设置画笔大小

GUI_DispString("\n\nGUI_GetPenSize:");

GUI_SetPenSize(1);

//获取画笔大小

GUI_DispDecMin(GUI_GetPenSize());

GUI_DispString(" GUI_SetPenSize:");

//设置画笔大小

GUI_SetPenSize(10);

GUI_DispDecMin(GUI_GetPenSize());

//清空, 5, 285, 15的方形区域

GUI_ClearRect(275, 5, 285, 15);

//复制,0起始位置的内容到, 32目标位置,复制大小x=50,y=8

GUI_DispString("\n\nGUI_CopyRect(0,0,50,0,50,8):->");

GUI_CopyRect(0,0, 180, 40, 50, 8);

//在矩形上垂直填充颜色,矩形x0=400,y0=0,x1=450,y1=50,起始色x0000FF 结束色x00FFFF

GUI_DrawGradientH(320, 0, 30, 50, 0x0000FF, 0x00FFFF);

//在矩形上垂直填充颜色,矩形x0=400,y0=0,x1=450,y1=50,起始色x0000FF 结束色x00FFFF

GUI_DrawGradientV(400, 0, 450, 50, 0x0000FF, 0x00FFFF);

GUI_DrawGradientRoundedH(320, 60, 370, 110, 10, 0x0000FF, 0x00FFFF);

GUI_DrawGradientRoundedV(400, 60, 450, 110, 10, 0x0000FF, 0x00FFFF);

//以画笔大小画点和以像素画点

GUI_DispString("\n\nGUI_DrawPoint:");

GUI_DispString(" GUI_DrawPixel:");

GUI_DrawPoint(90, 60);

GUI_DrawPixel(190, 60);

//画个空心的矩形

GUI_DrawRect(20,25, 300, 35);

GUI_DrawRectEx(&exRect);

//填充单色的圆角矩形,半径< Xd && 3 < Yd

GUI_FillRoundedRect(220, 55, 30, 75, 3);

//设置画笔大小

GUI_SetPenSize(1);

//填充单色的圆角矩形,半径< Xd && 3 < Yd

GUI_FillRoundedFrame(0, 70, 99, 110, 4,3);

//圆角画框,半径,宽

GUI_DrawRoundedFrame(110, 70, 20, 110, 4,3);

//反向填充矩形(数据取反)

GUI_InvertRect(220, 80, 300, 100);

}

}

例程在VS2008 下的运行效果:

时间: 2024-11-02 22:17:14

3.emWin5.26(ucGui)VS2008 2-D图形库-基本绘图【Worldsing笔记】的相关文章

emWin(ucGui)数值显示例程 -【worldsing笔记】

本例程下载:2.emWin5.26(ucGui)VS2008数字显示.zip ? 在emWin显示文本字符还是容易,我们也可以使用字符串和标准 C 库的函数来显示数值.然而,有时候这会是件困难的事.通常,较为容易(也更为有效)的是调用一个例程显示所需结 构的数值. emWin 支持各种十进制.十六进制和二进制输出.本章将对这些例程进行逐一描述.所有函数不需要使用浮点库,并对速度和大小进行了优化.当然"Sprintf"可以用于任何系统.使 用本章介绍的例程,有时可以简化操作,节省 ROM

emWin5.24 VS2008模拟LCD12864 stm32 RTX移植 【worldsing笔记】

? emWin for 12864 并口移植 源代码下载:RTX_emWin5.24_Keil_VS2008-20141122.zip ? 硬件环境: CPU: stm32f103ve LCD:st7920控制器 12864 并口 ? 软件环境: Keil MDK4.74 VS2008 emWin5.24 ? 使用rtx操作系统 ? ? 1.实现emWin5.24在keil 和vs2008同一代码的工程,vs2008目录实现在FMC的官方模拟器上的模拟,Keil目录实现在stm32f103ve

VS2008 工程中部分文件不参与编译 从生成中排除【Worldsing笔记】

Visual Studio 2008 .VS2008.VC2008工程源文件配置.编译配置 ? 有时编写代码时,往往存在这样的需求(或是希望有这样的功能):一个工程经过不共同的配置实现不同的版本或是功能,比如做开发包的Dome,一个库文件, 有多个API接口,以lib文件给用户提供时,我们需要提供文档和Demo,你可以一个Demo建立一个工程,但是,像VS2008这样的高级开发工具应该有解决 办法的,关键是你不知道怎么用,在VS2008环境下有这样几种解决办法: ? 建立一个工作区,在工作区里建

C++基于矢量图形库cairo绘图图形

//sudo apt-get install libcairo2-dev //pkg-config --cflags --libs cairo //-I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12  -lcairo #inc

emWin显示文本字符-【worldsing笔记】

在emWin显示文本字符还是容易的,提供了各种不同的接口,下面是有关于字符显示的常用的用法,可以直接复制到VS2008的模拟ucGui(emWin模拟工程)中运行: 工程代码下载:1.emWin5.26(ucGui)VS2008字符显示 ? #include "GUI.h" #include "WM.h" ? #include "CHECKBOX.h" #include "FRAMEWIN.h" #include "

VC6项目移植到VS2008的若干问题——好的代码,从我做起,从现在做起。

最近,有个项目开发,需要用到以前项目的代码,不过以前项目都是VC6下编译通过的,在VS2008下不一定编译通过,能编译通过也不一定能链接成功.下面总结一下我在一个VC6项目移植到VS2008中遇到的一些问题以及解决办法. 1 类型转换 1)WCHAR *wszFind = wcschr( wszText,(WCHAR)'@'); 这个代码在VC6下编译是没问题的,但在VS2008下,编译会报错,就是类型转换的问题,修改如下: WCHAR *wszFind = (WCHAR *)wcschr( w

精美、便捷的emWin界面设计-GLCD(图形屏)

GLCD是英文Graphics Liquid Crystal Display的缩写,即图形液晶屏(简称图形屏).其主要由图形LCD控制器和TFT-LCD组成,GLCD和传统TFT-LCD最大的区别在于其拥有2D图形加速引擎以及集成了Nand-Flash,可储存字库和图片. GLCD可作为emWin/ucGUI.Microchip-GUI等嵌入式GUI图形库的图形显示设备 基于GLCD的emWin界面设计只需要4步,30分钟完成人机界面设计 (1)PC模拟仿真emWin界面程序 (2)美工制作位图

iOS开发——图形编程OC篇&amp;(四)Quartz 2D简单使用

Quartz2D简单使用 一.画直线 代码: 1 // 2 // YYlineview.m 3 // 03-画直线 4 // 5 // Created by apple on 14-6-9. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import "YYlineview.h" 10 11 @implementation YYlineview 12 13 14 // 当自定义view第一次显示出来的时候

php设计模式笔记:单例模式

意图: 保证一个类仅有一个实例,并且提供一个全局访问点 单例模式有三个特点: 1.一个类只有一个实例2.它必须自行创建这个实例3.必须自行向整个系统提供这个实例 主要实现: Singleton定义了一个instance操作,允许外部访问它的唯一实例,instance是一个类方法,负责创建它的唯一实例. singleton适用场景: 1.当类只能有一个实例而且外部可以从一个公共的访问点访问它.2.当这个唯一实例应该是通过子类化可扩展的.并且用户应该无需更改代码就能使用一个扩展的实例时. Singl