OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5245|回复: 6

emwin控件换皮肤,刷屏出现波纹。

[复制链接]

21

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2017-7-19
在线时间
89 小时
发表于 2018-4-8 12:57:54 | 显示全部楼层 |阅读模式
1金钱
截取部分代码出来说明:framewin部分的皮肤,放在 WM_INIT_DIALOG 项中设置,结果出现类似波纹和撕裂的现象,特别是SLIDER这种刷新频繁高的控件现象明显。应该是代码太多效率问题了。请问有没有设置一次就能永久有效的方法。

[mw_shl_code=applescript,true]/**************************** 扁平化对话框设置 ************************/
        FRAMEWIN_SetClientColor( hItem,0X00FFFFFF);//设置窗体内部的颜色
  
        FRAMEWIN_GetSkinFlexProps(&FRAMEWIN_Props,FRAMEWIN_SKINFLEX_PI_ACTIVE);//获取当前对话框的属性
       
        FRAMEWIN_Props.aColorFrame[0] = 0X00F2EBB2;//100以下均为设置颜色
        FRAMEWIN_Props.aColorFrame[1] = 0X00EADE80;//200
        FRAMEWIN_Props.aColorFrame[2] = 0X00FFFFFF;//400

        FRAMEWIN_Props.aColorTitle[0] = 0X00DAC626;//400
        FRAMEWIN_Props.aColorTitle[1] = 0X00DAC626;

        FRAMEWIN_Props.BorderSizeT = 0;//标题栏与边框顶部的间距
        FRAMEWIN_Props.BorderSizeL = FRAMEWIN_Props.BorderSizeR = 5;//窗体内部的两侧与边框的间距

        FRAMEWIN_Props.Radius = 2;//圆角的半径

        FRAMEWIN_SetSkinFlexProps(&FRAMEWIN_Props,FRAMEWIN_SKINFLEX_PI_ACTIVE);//设置激活状态下的皮肤

        FRAMEWIN_GetSkinFlexProps(&FRAMEWIN_Props,FRAMEWIN_SKINFLEX_PI_INACTIVE);

        FRAMEWIN_Props.aColorFrame[0] = 0X00FFFFFF;//以下均为设置颜色
        FRAMEWIN_Props.aColorFrame[1] = 0X00F2EBB2;//100
        FRAMEWIN_Props.aColorFrame[2] = 0X00FFFFFF;
                                                                               
        FRAMEWIN_Props.aColorTitle[0] = 0X00F2EBB2;//100
        FRAMEWIN_Props.aColorTitle[1] = 0X00F2EBB2;

        FRAMEWIN_Props.BorderSizeT = 0;//标题栏与边框顶部的间距
        FRAMEWIN_Props.BorderSizeL = FRAMEWIN_Props.BorderSizeR = 5;//窗体内部的两侧与边框的间距

        FRAMEWIN_Props.Radius = 2;//圆角的半径
        FRAMEWIN_SetSkinFlexProps(&FRAMEWIN_Props,FRAMEWIN_SKINFLEX_PI_INACTIVE);//设置未激活状态下的皮肤
/**********************************************************************************/[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

F103下,使用“所有窗口内存设备”就能减少撕裂现象了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2017-7-19
在线时间
89 小时
 楼主| 发表于 2018-4-8 12:57:55 | 显示全部楼层
F103下,使用“所有窗口内存设备”就能减少撕裂现象了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-4-9 02:16:54 | 显示全部楼层
帮顶.
回复

使用道具 举报

21

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2017-7-19
在线时间
89 小时
 楼主| 发表于 2018-4-10 18:30:17 | 显示全部楼层
没人懂吗
回复

使用道具 举报

18

主题

323

帖子

1

精华

高级会员

Rank: 4

积分
935
金钱
935
注册时间
2017-12-11
在线时间
196 小时
发表于 2018-4-10 20:19:55 | 显示全部楼层
/*******************************************************************************************/
void  EmWin_DegaultSkin_Framewin(void)   //Framewin 对话框 皮肤自义
{
        /*** Framewin 控件皮肤自定义 ***/
        FRAMEWIN_SKINFLEX_PROPS  props;              //Framewin 皮肤结构体
        
        FRAMEWIN_GetSkinFlexProps(&props, FRAMEWIN_SKINFLEX_PI_ACTIVE); //设置前先获取
        props.aColorFrame[0] = GUI_GREEN;              //周围框架的外部顔色
        props.aColorFrame[1] = GUI_GRAY;               //周围框架的内侧顔色
        props.aColorFrame[2] = GUI_RED | 0x00CCCCCC;   //周围框架的边框顔色
        props.aColorTitle[0] = GUI_RED | 0x00DDDDDD;   //标题渐变的顶部顔色
        props.aColorTitle[1] = GUI_RED | 0x00999999;   //标题渐变的底部顔色
        FRAMEWIN_SetSkinFlexProps(&props, FRAMEWIN_SKINFLEX_PI_ACTIVE); //活动

        FRAMEWIN_GetSkinFlexProps(&props, FRAMEWIN_SKINFLEX_PI_INACTIVE); //设置前先获取
        props.aColorFrame[0] = GUI_BLACK;              //周围框架的外部顔色
        props.aColorFrame[1] = GUI_GRAY;               //周围框架的内侧顔色
        props.aColorFrame[2] = GUI_RED | 0x00BBBBBB;   //周围框架的边框顔色
        props.aColorTitle[0] = GUI_RED | 0x00CCCCCC;   //标题渐变的顶部顔色
        props.aColorTitle[1] = GUI_RED | 0x00888888;   //标题渐变的底部顔色
        FRAMEWIN_SetSkinFlexProps(&props, FRAMEWIN_SKINFLEX_PI_INACTIVE); //非活动
}
/*******************************************************************************************/
捕获.PNG
回复

使用道具 举报

21

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2017-7-19
在线时间
89 小时
 楼主| 发表于 2018-4-11 20:01:46 | 显示全部楼层
本帖最后由 飛饵 于 2018-4-11 20:03 编辑
wlq390934605 发表于 2018-4-10 20:19
/*******************************************************************************************/
void  ...

你这个和我的没太大区别啊??你写成一个函数,我直接在回调函数里写。我的皮肤显示是正常的,只是在对控件进行操作的时候会出现波纹现象,影响美观


回复

使用道具 举报

18

主题

323

帖子

1

精华

高级会员

Rank: 4

积分
935
金钱
935
注册时间
2017-12-11
在线时间
196 小时
发表于 2018-4-12 23:42:06 | 显示全部楼层
飛饵 发表于 2018-4-11 20:01
你这个和我的没太大区别啊??你写成一个函数,我直接在回调函数里写。我的皮肤显示是正常的,只是在对控 ...

我只是在证实EMWIn 没有错, 错的是你, 并不想解决你的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 08:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表