现在的位置: 首页 > 综合 > 正文

EBOOT升级进度条

2013年12月03日 ⁄ 综合 ⁄ 共 2212字 ⁄ 字号 评论关闭
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

 

抱歉!评论已关闭.