3.emWin5.26(ucGui)VS2008 2-D圖形庫-基本繪圖【Worldsing筆記】

UCGUI(emWin) 2-D圖形庫——之基本板繪圖,在ucgui的基本繪圖功能上來看,功能仍是比較全的,本例程主要使用基本的接口,兩個主要的概念是繪製(draw)和填充(Fill),這兩的區別是一個空心的,另外一個是實心的,用時注意加於區分,另外一個值得注意的是繪製模式,GUI_SetDrawMode(),目前emWin5.2有兩模式,一個是正常的繪製,另外一個是取反的方式繪製。 c++

 

例程代碼下載:3.emWin5.26(ucGui)VS2008 2-D圖形庫-基本繪圖.zip ui

 

GUI_GetPixelIndex() 返回給定位置的顏色指數。 spa

 

繪製模式 3d

GUI_GetDrawMode() 返回當前的繪製模式。 blog

GUI_SetDrawMode() 設置繪製模式。 接口

 

畫筆大小 ip

GUI_GetPenSize() 返回當前的畫筆大小 (像素)。 it

GUI_SetPenSize() 設置畫筆大小 (像素)。 io

 

查詢當前客戶區矩形 gui

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 下的運行效果:

相關文章
相關標籤/搜索