首页 > 技术服务> emWin学习课堂emWin学习课堂

技术支持与下载

我们为您提供最优质的售前售后服务,有任何问题及建议都可以联系我们。

免费技术服务热线:

市场业务咨询电话:

周一至周五(8:30-12:00、13:00-17:30)

联系我们

广州市番禺区南华路62号华景新城华倚园1梯301

全国销售网络

emWin 2天速成实例教程016_不规则异形进度条控件实现方法

日期:2017-09-26 00:37:23  来源:

备注:(1)打开工程目录下的"Exe\GUISimulationDebug.exe"即可看到效果。(2)看完教程000~005就基本会用emWin做项目,其他章节可以需要时再参考。

 

前言:

1)emWin中,有两种方法实现不规则进度条:(1)BMP位图方式 (2)2D绘图方式

2)如果采用第(1)种方式,必须先熟悉:”emWin 2天速成实例教程014_BMP位图图片显示以及位图皮肤的使用方法

3)掌握emWin的Skinning皮肤和剪切显示的概念非常、非常重要!具体请看”教程014”最后面。

 

(1)BMP位图方式实现不规则进度条

准备以下两幅图片bitmap_n.bmpbitmap_m.bmp,并用BmpCvt.exe转成C文件:

   

白色区域是进度条控件区域,即在这个位置放一个进度条控件,并把这两幅图片设置为该进度条控件的图片皮肤即可。

第一幅图片bitmap_n用于正常显示(比如进度条值为0),第二幅图片bitmap_m用于进度条填充,两幅图片复合显示的原理是:进度条的下部分剪切显示出bitmap_m,进度条的上部分剪切显示出bitmap_n,而这些都是emWin内部自己处理的(请不要想着还要自己去实现),你只需要做以下工作:

(1)将不同状态的页面图片赋值给"页面图片结构体":

(2)给控件设置位图皮肤: PROGBAR_SetSkin(WM_GetDialogItem(pMsg->hWin, ID_PROGBAR_0), SKIN_progbar3C);

具体请看教程014;当然,进度条的形状不限于三角形或圆形,可以是任何形状、任何效果的图形。

 

未使用位图皮肤(原始进度条控件)             使用位图皮肤:

    

 

 

(2)2D绘图方式实现不规则进度条

通过修改Skinning皮肤的”自定义绘制函数”,用绘制不规则图形实现各种形状的进度条:

蓝色方框是绘制进度条的上部分(空白部分),绿色方框是绘制进度条的下部分(填充部分);如果你仔细阅读程序之后,会发现红色方框函数绘制的是完整的填充圆,为什么实际效果却是显示进度值的部分而已?这就是emWin剪切显示的神奇之处!具体请看”教程014”最后面。


未使用Skinning皮肤(原始进度条控件)        使用Skinning皮肤:

   

 

本地下载 网盘下载
版权所有©2005-2016 广州尼奇光电科技有限公司 | 粤ICP备17079366号-1

更多...