EBOOT升级进度条

本文介绍如何在WinCE6系统中通过NBoot或EBoot添加开机进度条。通过计算NK文件读取进度并在屏幕上绘制相应线条,形成进度条效果,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VOID BspEbootUpdateShowProgressBar(BYTE phase, BYTE percent)
{
if (!g_bScreenInited || percent > 100)
return;

BspEbootUpdateProgressString(phase, 0);//,调用DrawString()来打印对应的字符串
if (percent < oldPercent)
FillRectangle(g_dwPgrBorderLeft + 1, g_dwPgrBorderTop + 1, g_dwPgrBorderLeft + PGR_BAR_WIDTH,
g_dwPgrBorderTop + PGR_BAR_HEIGHT, g_hCurrentDC->bkcolor);

oldPercent = percent;

FillRectangle(g_dwPgrBorderLeft + 1, g_dwPgrBorderTop + 1, g_dwPgrBorderLeft + PGR_BAR_WIDTH* percent / 100,
g_dwPgrBorderTop + PGR_BAR_HEIGHT, XBLUE);//设定填充宽度
..................................................................................................................................
}

参考文章:(BSP不一样 代码不同)

WINCE6开机进度条 

  大致思路,在NBoot EBoot 加开机进度条,由于WINCE 启动主要时间都花在读取NK ,因此每读取一定的页,就在屏上画一条固定高度的线,并记录画线的位置,下次接着画,直到读取完NK ,这样就产生的进度条的效果。
参考Mini2440 Nboot。

先定义进度条颜色、位置及长宽,关键代码如下:

 
  1. #define PROGRESS_BAR_R 0x00   
  2. #define PROGRESS_BAR_G 0xFF   
  3. #define PROGRESS_BAR_B 0x00   
  4.   
  5. //设置启动条的位置和长宽   
  6. #define PROGRESS_BAR_TOP    225   
  7. #define PROGRESS_BAR_LEFT   145   
  8. #define PROGRESS_BAR_WIDTH  512   
  9. #define PROGRESS_BAR_HEIGHT  20   
  10. #define PROGRESS_BAR_COLOR  ( ( (PROGRESS_BAR_R >> 3) << 11) | ((PROGRESS_BAR_G >> 2) << 5) | (PROGRESS_BAR_B >> 3) )   

在读取NK 前计算出读取开始画线的位置

 

 

  1. unsigned  char  *LCDCurrentAddr;  
  2. LCDCurrentAddr = (unsigned char  *)LCD_ADDR + PROGRESS_BAR_TOP * LCD_WIDTH * 2 + PROGRESS_BAR_LEFT * 2; // LCD_ADDR为屏地址   

 

 

 

根据 NK 长度及进条度长度,计算出每读取多少页就画一条线,画线关键代码

  1. unsigned  short  *p = (unsigned  short  *)LCDCurrentAddr;  
  2. for  (y = 0; y < PROGRESS_BAR_HEIGHT; y++)  
  3. {  
  4.     *p = PROGRESS_BAR_COLOR;  
  5.     p += LCD_WIDTH;  
  6. }  
  7. LCDCurrentAddr += 2;  
  
 

---------------------------------------------------------------------

尊重他人劳动成果,转载请标明出处http://www.cnblogs.com/feishanm

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值