WinCE增加开机Logo及滚动条

来源:互联网 发布:美观好用的linux 编辑:程序博客网 时间:2024/05/16 18:00

 目前手头的项目需要增加一个开机LOGO和滚动条,要求滚动条可以真实反映系统镜像加载的情况。

 

Wince启动过程分为三个部分,Steploader, Eboot, NK,如果制作开机界面的话,主要是在Eboot以及NK部分。对于Eboot,主要是可以反映系统镜像的复制情况,系统镜像的加载占据了绝大多数启动时间,而NK部分主要是驱动的加载。这部分时间相对于系统镜像加载时间还是很小的。所以我打算把启动界面和进度条都做在Eboot里面。在网上找了些例子,一般的方式都是把一张和系统分辨率一致的BMP图片转换成数组编译到程序中,然后直接使用该数组填充显存。但是这样做有个不好的地方就是一般这个图片的尺寸较大,会导致Eboot的大小过大,甚至超过512KB。

 

后来发现友坚Idea6410的BSP中使用了一个简单的UI库,可以加载BMP文件,显示BMP文件。于是就直接用这个库显示LOGO。好处是不需要用一整张屏幕尺寸的BMP,仅需要LOGO本身就可以了,因为实际使用中,一般情况下背景大部分都是黑色的,只有屏幕中间显示一个LOGO,类似WindowsXP的启动界面,如下图所示。这样我们只需要保存一个LOGO就可以了,其他地方可以用黑色填充。

 

电脑xp启动界面滚动卡几秒再滚- -:

 

1. 进度条:

Step1: 在main函数中画出进度条的边框。

 

 

Step2: 移植bootpart代码到Eboot中,在BP_ReadData中更新滚动条本身,反映当前加载的情况。 

 

 

 

2. Logo

 

Step1: 将BMP格式LOGO图片转换成数组,我自己写了一个小工具,可以自动生成Logo.h

 

 

Step2: 将BMP图片导入到内存

 

 

Step3: 显示LOGO到指定位置

 

原创粉丝点击