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

技术支持与下载

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

免费技术服务热线:

市场业务咨询电话:

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

联系我们

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

全国销售网络

emWin 2天速成实例教程013_修改BUTTON按钮等控件背景皮肤颜色_SetBkColor

日期:2017-08-27 13:58:24  来源:

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


 emWin的控件显示效果有两种风格,旧版本风格(按钮是直角的)和新版本Skinning风格(emWin5.28默认风格,按钮是圆角的)。对于emWin5.28及其以上版本,XXXX_SetBkColor()函数是不起作用的,因为此函数是针对于旧版本修改控件背景色。

 emWin可以通过两种方式修改控件背景色:(1)将控件设置为旧版本风格,通过XXXX_SetBkColor()函数修改控件背景色。(2)停留在新版本Skinning风格,通过修改皮肤色的方法修改控件背景色。在例程中通过P1_DefaultSkinENA宏定义切换两种方式:


第(1)种方式比较简单没什么好说的,这里主要讲解下第(2)种方式:

BUTTON_SKINFLEX_PROPS Props;

BUTTON_GetSkinFlexProps(&Props, BUTTON_SKINFLEX_PI_ENABLED);

Props.Radius = 2;           //圆角半径

Props.aColorUpper[0] = GUI_WHITE;  //上半部颜色

Props.aColorLower[0] = GUI_RED;   //上半部颜色

Props.aColorUpper[1] = GUI_RED;   //下半部颜色

Props.aColorLower[1] = GUI_WHITE;  //下半部颜色

BUTTON_SetSkinFlexProps(&Props, BUTTON_SKINFLEX_PI_ENABLED);

emWin专门用一个XXXX_SKINFLEX_PROPS结构体储存控件皮肤的信息,对于按钮控件包括圆角半径、边框颜色(aColorFrame[],有3个边框)、上半部颜色(含渐变的UpperLower)、下半部颜色(含渐变的UpperLower)

修改颜色的步骤:用XXXX_GetSkinFlexProps()函数获取当前的皮肤信息->修改皮肤信息->XXXX__SetSkinFlexProps()函数设置皮肤信息。

 

总结:

(1)如果某一类控件设置为旧版本风格,该类型的所有控件都将会是旧版本风格(比如所有按钮都是直角的),但XXXX_SetBkColor()函数可以设置每一个控件使用不同的背景色(比如可以是不同颜色的3个按钮,但都是直角的)

(2)如果某一类控件设置为新版本风格(默认),那么该类型的所有控件都将会是相同风格,相同颜色(比如所有按钮都是圆角的,并且都是相同一种颜色)

(3)如果按钮控件设置为新版本风格(默认),而且需要不同颜色的按钮,那么只能用位图皮肤的方式,即用图片做按钮的皮肤。

       


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

更多...