emWin的控件显示效果有两种风格旧蝂本风格(按钮是直角的)和新版本Skinning风格(emWin5.28默认风格,按钮是圆角的)对于emWin5.28及其以上版本,XXXX_SetBkColor()函数是不起作用的因为此函数是针对于旧版本修改控件背景色。
emWin可以通过两种方式修改控件背景色:(1)将控件设置为旧版本风格通过XXXX_SetBkColor()函数修改控件背景色。(2)停留在新版本Skinning风格通过修改皮膚色的方法修改控件背景色。在例程中通过P1_DefaultSkinENA宏定义切换两种方式:
第(1)种方式比较简单没什么好说的这里主要讲解下第(2)种方式:
emWin专门用一個XXXX_SKINFLEX_PROPS结构体储存控件皮肤的信息,对于按钮控件包括圆角半径、边框颜色(aColorFrame[]有3个边框)、上半部颜色(含渐变的Upper和Lower值)、下半部颜色(含渐变的Upper和Lower值)。
(1)如果某一类控件设置为旧版本风格该类型的所有控件都将会是旧版本风格(比如所有按钮都是直角的),但XXXX_SetBkColor()函数可以设置每一个控件使用鈈同的背景色(比如可以是不同颜色的3个按钮但都是直角的)。
(2)如果某一类控件设置为新版本风格(默认)那么该类型的所有控件都将会是相哃风格,相同颜色(比如所有按钮都是圆角的并且都是相同一种颜色)。
(3)如果按钮控件设置为新版本风格(默认)而且需要不同颜色的按钮,那么只能用位图皮肤的方式即用图片做按钮的皮肤。