emWin电脑端模拟器之Progress Bar进度条控件

 时间:2024-10-17 04:37:50

1、在目录SeggerEval_WIN32_MSVC_MinGW_GUI_V542中打开SimulationTrial.sln解决方案。打开SWIPELIST_Demo.c文件,找到MainTask()函数,即为入口函数。打开LCDConf.h文件,找到#define XSIZE_PHYS 800 #define YSIZE_PHYS 500修改模拟器屏幕尺寸大小。

emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件

2、int LCD_XWIDTH_SIZE = 0;int LCD_YHIGH_SIZE = 0;void MainTask(void){ GUI_Init(); GUI_UC_SetEncodeUTF8(); GUI_SetBkColor(GUI_WHITE); GUI_SetColor(GUI_BLUE); GUI_Clear(); LCD_XWIDTH_SIZE = LCD_GetXSize(); LCD_YHIGH_SIZE = LCD_GetYSize(); GUI_SetColor(0xFF901E); GUI_FillRect(0, 0, LCD_XWIDTH_SIZE, 30); GUI_SetFont(&GUI_Font8x18); GUI_SetBkColor(0xFF901E); GUI_SetColor(GUI_WHITE); GUI_DispStringAt("emWin Demo For Progress Bar", 270, 7); GUI_SetColor(0xFF901E); GUI_DrawLine(560, 31, 560, LCD_YHIGH_SIZE); GUI_SetColor(GUI_BLACK); GUI_SetBkColor(GUI_WHITE); GUI_DispStringAt("LCD X Physics Size : px", 570, 45); GUI_DispDecAt(LCD_XWIDTH_SIZE, 735, 45, 3); GUI_DispStringAt("LCD Y Physics Size : px", 570, 70); GUI_DispDecAt(LCD_YHIGH_SIZE, 735, 70, 3); GUI_DrawLine(560, 95, LCD_XWIDTH_SIZE, 95); while (1) { GUI_Delay(200); }}

emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件

3、#define PROG_BAR1_MIN_VALUE 0#define PROG_BAR2_MIN_VALUE 0#define PROG_BAR3_MIN_VALUE 1000#define PROG_BAR1_MAX_VALUE 99#define PROG_BAR2_MAX_VALUE 500#define PROG_BAR3_MAX_VALUE 9999int LCD_XWIDTH_SIZE = 0;int LCD_YHIGH_SIZE = 0;void MainTask(void){ PROGBAR_Handle progBar1; PROGBAR_Handle progBar2; PROGBAR_Handle progBar3; int curValueBar1 = PROG_BAR1_MIN_VALUE; int curValueBar2 = PROG_BAR2_MIN_VALUE; int curValueBar3 = PROG_BAR3_MIN_VALUE; GUI_Init(); GUI_UC_SetEncodeUTF8(); GUI_SetBkColor(GUI_WHITE); GUI_SetColor(GUI_BLUE); GUI_Clear(); GUI_DispStringAt("Progress Bar1", 50, 70); progBar1 = PROGBAR_CreateEx(170, 65, 300, 20, 0, (WM_CF_SHOW | WM_CF_CONST_OUTLINE), 0, 0); PROGBAR_SetFont(progBar1, &GUI_Font8x18); PROGBAR_SetMinMax(progBar1, PROG_BAR1_MIN_VALUE, PROG_BAR1_MAX_VALUE); PROGBAR_SetValue(progBar1, PROG_BAR1_MIN_VALUE); GUI_DispStringAt("Progress Bar2", 50, 120); progBar2 = PROGBAR_CreateEx(170, 115, 300, 20, 0, (WM_CF_SHOW | WM_CF_CONST_OUTLINE), 0, 0); PROGBAR_SetFont(progBar2, &GUI_Font8x18); PROGBAR_SetMinMax(progBar2, PROG_BAR2_MIN_VALUE, PROG_BAR2_MAX_VALUE); PROGBAR_SetValue(progBar2, PROG_BAR2_MIN_VALUE); GUI_DispStringAt("Progress Bar3", 50, 170); progBar3 = PROGBAR_CreateEx(170, 165, 300, 20, 0, (WM_CF_SHOW | WM_CF_CONST_OUTLINE), 0, 0); PROGBAR_SetFont(progBar3, &GUI_Font8x18); PROGBAR_SetMinMax(progBar3, PROG_BAR3_MIN_VALUE, PROG_BAR3_MAX_VALUE); PROGBAR_SetValue(progBar3, PROG_BAR3_MIN_VALUE); GUI_DrawLine(0, 230, 560, 230); while (1) { GUI_Delay(200); }}

emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件

4、在指定位置创建指定大小的 PROGBAR 控件。PROGBAR_Handle PROGBAR_CreateEx(int x0, int y0,int xSize, int ySize,WM_HWIN hParent, int WinFlags,int ExFlags, int Id);选择 PROGBAR 控件内显示的文本的字体。void PROGBAR_SetFont(PROGBAR_Handle hObj, const GUI_FONT * pFont);设置 PROGBAR 控件的最小值和最大值。void PROGBAR_SetMinMax(PROGBAR_Handle hObj, int Min, int Max);设置 PROGBAR 控件的值。void PROGBAR_SetValue(PROGBAR_Handle hObj, int v);

emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件

5、进度条最小值和最大值#define PROG_BAR1_MIN_VALUE 0#define PROG_BAR2_MIN_VALUE 0#define PROG_BAR3_MIN_VALUE 1000#define PROG_BAR1_MAX_VALUE 99#define PROG_BAR2_MAX_VALUE 500#define PROG_BAR3_MAX_VALUE 9999进度条句柄PROGBAR_Handle progBar1; PROGBAR_Handle progBar2; PROGBAR_Handle progBar3;进度条当前值int curValueBar1 = PROG_BAR1_MIN_VALUE; int curValueBar2 = PROG_BAR2_MIN_VALUE; int curValueBar3 = PROG_BAR3_MIN_VALUE;

emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件

6、初始化 emWin 内部数据结构和变量。int GUI_Init(void);启用 UTF-8 编码。void GUI_UC_SetEncodeUTF8(void);设置当前背景色。GUI_COLOR GUI_SetBkColor(GUI_COLOR Color);设置当前前景色。void GUI_SetColor(GUI_COLOR Color);清除当前窗口。void GUI_Clear(void);分别返回 LCD 的物理 X 尺寸和 Y 尺寸 (单位:像素)。int LCD_GetXSize(void);int LCD_GetYSize(void);在当前窗口中的指定位置绘制填充的矩形区域。void GUI_FillRect(int x0, int y0, int x1, int y1);设置用于文本输出的字体。const GUI_FONT * GUI_SetFont(const GUI_FONT * pNewFont);在当前窗口的指定位置处,使用当前字体显示作为参数的字符串。void GUI_DispStringAt(const char * s, int x, int y);在当前窗口中绘制从某个指定起点到某个指定终点之间的线(绝对坐标)。void GUI_DrawLine(int x0, int y0, int x1, int y1);在当前窗口的指定位置处,使用当前字体显示指定字符数的十进制数值。void GUI_DispDecAt(I32 v, I16P x, I16P y, U8 Len);

emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件

7、#define PROG_BAR1_MIN_VALUE 0#define PROG_BAR2_MIN_VALUE 0#define PROG_BAR3_MIN_VALUE 1000#define PROG_BAR1_MAX_VALUE 99#define PROG_BAR2_MAX_VALUE 500#define PROG_BAR3_MAX_VALUE 9999int LCD_XWIDTH_SIZE = 0;int LCD_YHIGH_SIZE = 0;void MainTask(void){ GUI_DispStringAt("Progress Bar2", 50, 120); progBar2 = PROGBAR_CreateEx(170, 115, 300, 20, 0, (WM_CF_SHOW | WM_CF_CONST_OUTLINE), 0, 0); PROGBAR_SetFont(progBar2, &GUI_Font8x18); PROGBAR_SetMinMax(progBar2, PROG_BAR2_MIN_VALUE, PROG_BAR2_MAX_VALUE); PROGBAR_SetValue(progBar2, PROG_BAR2_MIN_VALUE); GUI_DispStringAt("Progress Bar3", 50, 170); progBar3 = PROGBAR_CreateEx(170, 165, 300, 20, 0, (WM_CF_SHOW | WM_CF_CONST_OUTLINE), 0, 0); PROGBAR_SetFont(progBar3, &GUI_Font8x18); PROGBAR_SetMinMax(progBar3, PROG_BAR3_MIN_VALUE, PROG_BAR3_MAX_VALUE); PROGBAR_SetValue(progBar3, PROG_BAR3_MIN_VALUE); GUI_DrawLine(0, 230, 560, 230); GUI_DispStringAt("Items", 20, 260); GUI_DispStringAt("Bar1", 25, 290); GUI_DispStringAt("Bar2", 25, 320); GUI_DispStringAt("Bar3", 25, 350); GUI_DispStringAt("Progress", 150, 260); GUI_DispDecAt(PROG_BAR1_MIN_VALUE, 170, 290, 2); GUI_DispDecAt(PROG_BAR2_MIN_VALUE, 170, 320, 3); GUI_DispDecAt(PROG_BAR3_MIN_VALUE, 170, 350, 4); GUI_DispStringAt("Remain", 300, 260); GUI_DispDecAt(PROG_BAR1_MAX_VALUE, 310, 290, 2); GUI_DispDecAt(PROG_BAR2_MAX_VALUE, 310, 320, 3); GUI_DispDecAt(PROG_BAR3_MAX_VALUE, 310, 350, 4); while (1) { GUI_Delay(200); }}

emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件

8、#define PROG_BAR1_MIN_VALUE 0#define PROG_BAR2_MIN_VALUE 0#define PROG_BAR3_MIN_VALUE 1000#define PROG_BAR1_MAX_VALUE 99#define PROG_BAR2_MAX_VALUE 500#define PROG_BAR3_MAX_VALUE 9999int LCD_XWIDTH_SIZE = 0;int LCD_YHIGH_SIZE = 0;void MainTask(void){ PROGBAR_Handle progBar1; PROGBAR_Handle progBar2; PROGBAR_Handle progBar3; int curValueBar1 = PROG_BAR1_MIN_VALUE; int curValueBar2 = PROG_BAR2_MIN_VALUE; int curValueBar3 = PROG_BAR3_MIN_VALUE; int flagBar2 = 0; GUI_Init(); GUI_UC_SetEncodeUTF8(); GUI_SetBkColor(GUI_WHITE); GUI_SetColor(GUI_BLUE); GUI_Clear(); LCD_XWIDTH_SIZE = LCD_GetXSize(); LCD_YHIGH_SIZE = LCD_GetYSize(); GUI_SetColor(0xFF901E); GUI_FillRect(0, 0, LCD_XWIDTH_SIZE, 30); GUI_SetFont(&GUI_Font8x18); GUI_SetBkColor(0xFF901E); GUI_SetColor(GUI_WHITE); GUI_DispStringAt("emWin Demo For Progress Bar", 270, 7); GUI_SetColor(0xFF901E); GUI_DrawLine(560, 31, 560, LCD_YHIGH_SIZE); GUI_SetColor(GUI_BLACK); GUI_SetBkColor(GUI_WHITE); GUI_DispStringAt("LCD X Physics Size : px", 570, 45); GUI_DispDecAt(LCD_XWIDTH_SIZE, 735, 45, 3); GUI_DispStringAt("LCD Y Physics Size : px", 570, 70); GUI_DispDecAt(LCD_YHIGH_SIZE, 735, 70, 3); GUI_DrawLine(560, 95, LCD_XWIDTH_SIZE, 95); GUI_DispStringAt("Progress Bar1", 50, 70); progBar1 = PROGBAR_CreateEx(170, 65, 300, 20, 0, (WM_CF_SHOW | WM_CF_CONST_OUTLINE), 0, 0); PROGBAR_SetFont(progBar1, &GUI_Font8x18); PROGBAR_SetMinMax(progBar1, PROG_BAR1_MIN_VALUE, PROG_BAR1_MAX_VALUE); PROGBAR_SetValue(progBar1, PROG_BAR1_MIN_VALUE); GUI_DispStringAt("Progress Bar2", 50, 120); progBar2 = PROGBAR_CreateEx(170, 115, 300, 20, 0, (WM_CF_SHOW | WM_CF_CONST_OUTLINE), 0, 0); PROGBAR_SetFont(progBar2, &GUI_Font8x18); PROGBAR_SetMinMax(progBar2, PROG_BAR2_MIN_VALUE, PROG_BAR2_MAX_VALUE); PROGBAR_SetValue(progBar2, PROG_BAR2_MIN_VALUE); GUI_DispStringAt("Progress Bar3", 50, 170); progBar3 = PROGBAR_CreateEx(170, 165, 300, 20, 0, (WM_CF_SHOW | WM_CF_CONST_OUTLINE), 0, 0); PROGBAR_SetFont(progBar3, &GUI_Font8x18); PROGBAR_SetMinMax(progBar3, PROG_BAR3_MIN_VALUE, PROG_BAR3_MAX_VALUE); PROGBAR_SetValue(progBar3, PROG_BAR3_MIN_VALUE); GUI_DrawLine(0, 230, 560, 230); GUI_DispStringAt("Items", 20, 260); GUI_DispStringAt("Bar1", 25, 290); GUI_DispStringAt("Bar2", 25, 320); GUI_DispStringAt("Bar3", 25, 350); GUI_DispStringAt("Progress", 150, 260); GUI_DispDecAt(PROG_BAR1_MIN_VALUE, 170, 290, 2); GUI_DispDecAt(PROG_BAR2_MIN_VALUE, 170, 320, 3); GUI_DispDecAt(PROG_BAR3_MIN_VALUE, 170, 350, 4); GUI_DispStringAt("Remain", 300, 260); GUI_DispDecAt(PROG_BAR1_MAX_VALUE, 310, 290, 2); GUI_DispDecAt(PROG_BAR2_MAX_VALUE, 310, 320, 3); GUI_DispDecAt(PROG_BAR3_MAX_VALUE, 310, 350, 4); while (1) { GUI_Delay(200); if (curValueBar1 > PROG_BAR1_MAX_VALUE) curValueBar1 = PROG_BAR1_MIN_VALUE; if (curValueBar3 > PROG_BAR3_MAX_VALUE) curValueBar3 = PROG_BAR3_MIN_VALUE; PROGBAR_SetValue(progBar1, curValueBar1); GUI_DispDecAt(curValueBar1, 170, 290, 2); GUI_DispDecAt(PROG_BAR1_MAX_VALUE - curValueBar1, 310, 290, 2); PROGBAR_SetValue(progBar2, curValueBar2); GUI_DispDecAt(curValueBar2, 170, 320, 3); GUI_DispDecAt(PROG_BAR2_MAX_VALUE - curValueBar2, 310, 320, 3); PROGBAR_SetValue(progBar3, curValueBar3); GUI_DispDecAt(curValueBar3, 170, 350, 4); GUI_DispDecAt(PROG_BAR3_MAX_VALUE - curValueBar3, 310, 350, 4); curValueBar1++; curValueBar3 += 29; if (flagBar2) { curValueBar2 -= 9; if (curValueBar2 <= PROG_BAR2_MIN_VALUE) flagBar2 = 0; } else { curValueBar2 += 7; if (curValueBar2 >= PROG_BAR2_MAX_VALUE) flagBar2 = 1; } }}

emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
emWin电脑端模拟器之Progress Bar进度条控件
  • 分区助手如何格式化分区?
  • win2003怎么关闭防火墙
  • 老毛桃u盘启动盘如何检查ghost镜像完整性
  • DELL灵越 15R系列 5537使用优化方案
  • Win10如何设置平铺契合度
  • 热门搜索
    铁人精神手抄报 端午节手抄报。 科普手抄报内容 红红火火过大年手抄报 战疫情手抄报 国庆节手抄报一等奖 文明出行手抄报 做一个有道德的人手抄报 绿色环保手抄报图片 冬天的手抄报