zoukankan      html  css  js  c++  java
  • 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(" GUI_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(" GUI_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(" GUI_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(" GUI_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 下的运行效果:

  • 相关阅读:
    PHP:第一章——PHP中的goto语句和
    PHP:第二章——PHP中的foreach语句
    Swingr的JTextField、JPasswordField设置圆角输入框
    Jtabbedpane设置透明、Jpanel设置透明
    去掉utf-8的Bom头:使用java以及jdbc不使用第三方库执行sql文件脚本
    使用java以及jdbc不使用第三方库执行sql文件脚本
    JButton ButtonClickTest
    Md5加密
    JButton变换样式
    grub2详解(翻译和整理官方手册)
  • 原文地址:https://www.cnblogs.com/worldsing/p/4067116.html
Copyright © 2011-2022 走看看