?? test1.c
字號:
/****************************************************************************************
* 文件名:TEST.C
* 功能:GUI測試及演示程序。
* 作者:黃紹斌
* 日期:2003.09.09
****************************************************************************************/
#include "config.h"
#define KEY_OK 3
#define KEY_NEXT 2
#define KEY_BACK 1
/****************************************************************************
* 名稱:DelayNS()
* 功能:長軟件延時
* 入口參數:dly 延時參數,值越大,延時越久
* 出口參數:無
****************************************************************************/
void DelayNS(uint32 dly)
{ uint32 i;
for(; dly>0; dly--)
for(i=0; i<5000; i++);
}
/****************************************************************************
* 名稱:WaitKey()
* 功能:等待一個有效按鍵,并返回按鍵值。本函數有去抖功能。
* 入口參數:無
* 出口參數:返回按鍵盤值。
****************************************************************************/
uint8 WaitKey(void)
{ uint32 i;
uint8 key;
uint8 key_bak;
key = 0; // 接收按鍵
while(0==key)
{ key = ZLG7290_GetKey();
for(i=0; i<1000; i++);
}
key_bak = 1;
while(0!=key_bak) // 等待按鍵放開
{ key_bak = ZLG7290_GetKey();
for(i=0; i<1000; i++);
}
return(key);
}
/****************************************************************************
* 名稱:DispLog()
* 功能:顯示LOG,用堅線填充屏幕(填充0xAA)。
* 入口參數:無
* 出口參數:無
****************************************************************************/
void DispLog(void)
{ GUI_FillSCR(0xAA); // 填充0xAA
DelayNS(30);
}
/****************************************************************************
* 名稱:WaitAKey()
* 功能:等待任一個有效按鍵,并返回。
* 入口參數:無
* 出口參數:無
****************************************************************************/
void WaitAKey(void)
{ uint8 key;
while(1)
{ key = WaitKey();
if(key==KEY_NEXT) return;
if(key==KEY_BACK) return;
if(key==KEY_OK) return;
}
}
/****************************************************************************
* 名稱:DemoLine()
* 功能:繪畫直線演示。
* 入口參數:無
* 出口參數:無
****************************************************************************/
void DemoLine(void)
{ WINDOWS demow;
/* 顯示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Line for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
/* 打鉤 */
GUI_Line(90, 60, 110, 90, 1);
GUI_Line(110, 90, 190, 50, 1);
GUI_LineWith(50, 60, 70, 90, 3, 1);
GUI_LineWith(70, 90, 170, 40, 3, 1);
/* 畫垂直線及水平線 */
GUI_RLine(70, 45, 70, 1);
GUI_HLine(140, 85, 180, 1);
WaitAKey(); // 等待一按鍵
GUI_WindowsHide(&demow);
}
/****************************************************************************
* 名稱:DemoCircle()
* 功能:繪畫圓演示。
* 入口參數:無
* 出口參數:無
****************************************************************************/
void DemoCircle(void)
{ WINDOWS demow;
/* 顯示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Circle for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
/* 畫兩個圓 */
GUI_CircleFill(75, 60, 15, 1);
GUI_Circle(100, 70, 5, 1);
/* 畫兩個交圓,并對交點進行填充 */
GUI_Circle(135, 65, 20, 1);
GUI_Circle(155, 65, 20, 1);
GUI_FloodFill(145, 65, 1);
WaitAKey(); // 等待一按鍵
GUI_WindowsHide(&demow);
}
/****************************************************************************
* 名稱:DemoArc()
* 功能:繪畫圓弧及扇形演示。
* 入口參數:無
* 出口參數:無
****************************************************************************/
void DemoArc(void)
{ WINDOWS demow;
/* 顯示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Arc for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
/* 畫兩個90度角的弧(第3、1像限) */
GUI_Arc4(75, 70, 20, 3, 1);
GUI_Arc4(65, 70, 20, 1, 1);
GUI_Pieslice(110, 75, 20, 0, 135, 1);
GUI_Arc(130, 60, 20, 30, 90, 1);
GUI_Pieslice(160, 70, 20, 100, 0, 1);
GUI_FloodFill(165, 72, 1);
WaitAKey(); // 等待一按鍵
GUI_WindowsHide(&demow);
}
/****************************************************************************
* 名稱:DemoEllipse()
* 功能:繪畫隨圓演示。
* 入口參數:無
* 出口參數:無
****************************************************************************/
void DemoEllipse(void)
{ WINDOWS demow;
/* 顯示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Ellipse for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
GUI_Ellipse(50, 100, 50, 80, 1);
GUI_Ellipse(110, 130, 45, 90, 1);
GUI_EllipseFill(140, 190, 60, 90, 1);
WaitAKey(); // 等待一按鍵
GUI_WindowsHide(&demow);
}
/****************************************************************************
* 名稱:DemoRectang()
* 功能:繪畫矩形演示。
* 入口參數:無
* 出口參數:無
****************************************************************************/
void DemoRectang(void)
{ WINDOWS demow;
/* 顯示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Rectang for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
/* 畫一個矩形及填充矩形 */
GUI_Rectangle(50, 45, 90, 85, 1);
GUI_Rectangle(75, 50, 100, 88, 1);
GUI_RectangleFill(80, 60, 130, 80, 1);
GUI_Rectangle(110, 50, 180, 90, 1);
GUI_Rectangle(135, 40, 190, 70, 1);
WaitAKey(); // 等待一按鍵
GUI_WindowsHide(&demow);
}
uint32 const mline[] = {120,40, 110,55, 90,60, 110,70, 120,90, 130,70, 150,60, 130,55, 120,40};
uint32 const poly5[] = {65,45, 50,60, 50,90, 80,90, 80,60, 65,45};
uint32 const poly4[] = {155,50, 190,50, 155,85, 190,85, 155,50};
/****************************************************************************
* 名稱:DemoPoly()
* 功能:繪畫多邊形演示。
* 入口參數:無
* 出口參數:無
****************************************************************************/
void DemoPoly(void)
{ WINDOWS demow;
/* 顯示演示窗口 */
demow.x = 45;
demow.y = 25;
demow.with = 150;
demow.hight = 80;
demow.title = (uint8 *) "Poly for Demo";
demow.state = (uint8 *) "Enter a key return.";
GUI_WindowsDraw(&demow);
GUI_LineS(poly5, 6, 1);
GUI_LineS(mline, 9, 1);
GUI_FloodFill(115, 55, 1);
GUI_LineS(poly4, 5, 1);
GUI_FloodFill(160, 52, 1);
WaitAKey(); // 等待一按鍵
GUI_WindowsHide(&demow);
}
/*-- 調入了一幅圖像:C:\WINDOWS\Desktop\windows.bmp --*/
/*-- 寬度x高度=167x124 --*/
/*-- 寬度不是8的倍數,現調整為:寬度x高度=168x124 --*/
uint8 const windows[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0x83,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x0F,0xF7,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0xEF,0xF0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x1F,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x00,0x1F,0xE7,0xFE,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x1F,0xEF,0xFD,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x3E,0x00,0x1F,0xFF,
0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3E,0x00,0x1F,0xFB,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x3F,0xF7,0xFE,0xFF,0xFF,0xFF,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x7C,0x7F,0x3F,0xFF,0xFE,
0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,
0x00,0xFE,0x00,0x1F,0xFD,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xE0,0x00,0xFC,0x00,0x1F,0xF9,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x01,0xFC,0x3F,0xBF,0xF9,0xFF,
0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x03,0xF8,
0x00,0xFF,0x7F,0xF7,0xE1,0x1F,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0xF0,0x00,0xFE,0x7F,0xE7,0xE0,0x1F,0xF3,0xFF,0xFE,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x01,0xFE,0x7F,0xEF,0xE0,0x1F,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -