硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2149|回复: 10
收起左侧

[emWin] EMWIN的RADIO控件文本显示

[复制链接]

13

主题

48

回帖

87

积分

初级会员

积分
87
发表于 2017-12-8 11:36:48 | 显示全部楼层 |阅读模式
关于RADIO控件文本显示的问题,为什么我的文本显示第一行字体会显示不全,已经确定控件大小足够用于显示完全。

RADIO文本显示

RADIO文本显示
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2017-12-8 11:49:46 | 显示全部楼层
换其它的字体看看,换默认支持的ASCII看看,等。
radio控件本身问题就比较多些。
回复

使用道具 举报

13

主题

48

回帖

87

积分

初级会员

积分
87
 楼主| 发表于 2017-12-8 13:56:05 | 显示全部楼层

回 eric2013 的帖子

eric2013:换其它的字体看看,换默认支持的ASCII看看,等。
radio控件本身问题就比较多些。 (2017-12-08 11:49) 
自带的字体显示不了汉字诶[s:122]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2017-12-8 14:50:50 | 显示全部楼层
测试ASCII是想让你看下是否也有这种问题。
帮你测试了emWin5.32  5.36和5.40,显示汉字都是这个样子的。可以考虑使用控件的自定义回调函数来实现,也就是自己定义显示效果,这样就没问题了。
QQ截图20171208144600.jpg
回复

使用道具 举报

13

主题

48

回帖

87

积分

初级会员

积分
87
 楼主| 发表于 2017-12-11 12:10:27 | 显示全部楼层

回 eric2013 的帖子

eric2013:测试ASCII是想让你看下是否也有这种问题。
帮你测试了emWin5.32  5.36和5.40,显示汉字都是这个样子的。可以考虑使用控件的自定义回调函数来实现,也就是自己定义显示效果,这样就没问题了。
 (2017-12-08 14:50) 
[s:140]好的,我用了框架FRAME皮肤自定义回调函数,发现刷新速度会慢怎么办
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2017-12-11 16:00:16 | 显示全部楼层

回 黑眼圈红了 的帖子

黑眼圈红了:[s:140]好的,我用了框架FRAME皮肤自定义回调函数,发现刷新速度会慢怎么办 (2017-12-11 12:10) 
默认皮肤刷新速度怎么样。如果默认的不慢,估计是新作的自定义回调有问题。
回复

使用道具 举报

13

主题

48

回帖

87

积分

初级会员

积分
87
 楼主| 发表于 2017-12-12 10:20:06 | 显示全部楼层

回 eric2013 的帖子

eric2013:默认皮肤刷新速度怎么样。如果默认的不慢,估计是新作的自定义回调有问题。 (2017-12-11 16:00) 
我就使用了下面的回调函数,只是更改框架皮肤而已
/*
*********************************************************************************************************
*    函 数 名:_DrawSkinFlex_FRAME
*    功能说明:框架皮肤回调函数
*    形    参:pDrawItemInfo 回调参数   
*    返 回 值:无  
*********************************************************************************************************
*/
static int _DrawSkinFlex_FRAME(const WIDGET_ITEM_DRAW_INFO * pDrawItemInfo)
{
    GUI_SetColor(GUI_LIGHTBLUE);
    switch (pDrawItemInfo->Cmd)
    {
        case WIDGET_ITEM_DRAW_BACKGROUND:
            break;
        
        case WIDGET_ITEM_DRAW_FRAME:
          GUI_AA_FillRoundedRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1-1,
                    pDrawItemInfo->y1-1, 0);
            break;
        
        default:
            return FRAMEWIN_DrawSkinFlex(pDrawItemInfo);
    }
    return 0;

}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2017-12-12 10:21:45 | 显示全部楼层

回 黑眼圈红了 的帖子

黑眼圈红了:我就使用了下面的回调函数,只是更改框架皮肤而已
/*
*********************************************************************************************************
*    函 数 名:_DrawSkinFlex_FRAME
....... (2017-12-12 10:20) 
不用函数GUI_AA_FillRoundedRect,用GUI_FillRoundedRect试试
回复

使用道具 举报

13

主题

48

回帖

87

积分

初级会员

积分
87
 楼主| 发表于 2017-12-12 11:18:05 | 显示全部楼层

回 eric2013 的帖子

eric2013:不用函数GUI_AA_FillRoundedRect,用GUI_FillRoundedRect试试 (2017-12-12 10:21) 
OK,我试一下,还有个问题,我用LISTBOX控件时,要给控件增加字符,就定义了一个字符数组,还定义了一个指向常量字符的指针,结果,直接挂了,难道这样强制转换不行吗?[s:125]
    char string[6]={"MODEL"};
    const char *stringptr;

                  hListBox = WM_GetDialogItem(hWin, GUI_ID_Template1);
                LISTBOX_SetBkColor(hListBox,0,0xffffff);
            LISTBOX_SetFont(hListBox, &XBF_Font20);
            LISTBOX_SetItemSpacing(hListBox, 5);
            LISTBOX_SetAutoScrollH(hListBox,1);
            LISTBOX_SetAutoScrollV(hListBox,1);
        
            
            string[5] = '0'+ 1;
            stringptr = string;   
            LISTBOX_AddString(hListBox,stringptr);
回复

使用道具 举报

13

主题

48

回帖

87

积分

初级会员

积分
87
 楼主| 发表于 2017-12-12 11:22:59 | 显示全部楼层

回 eric2013 的帖子

eric2013:不用函数GUI_AA_FillRoundedRect,用GUI_FillRoundedRect试试 (2017-12-12 10:21) 
诶,我改成GUI_FillRoundedRect之后就不会看到刷新的过程了,为什么呢?GUI_AA_FillRoundedRect会如此影响刷新速度
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2017-12-13 00:32:53 | 显示全部楼层

回 黑眼圈红了 的帖子

黑眼圈红了:诶,我改成GUI_FillRoundedRect之后就不会看到刷新的过程了,为什么呢?GUI_AA_FillRoundedRect会如此影响刷新速度 (2017-12-12 11:22) 
估计是吧,你开FPU了没有,记得开。
另外,如果用了F429会好很多,可以将背景提前绘制到存储设备里面,然后调用存储设备的API函数显示就行,速度比较快。因为F429外接SDRAM后可以有很大的emWin动态内存。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 20:11 , Processed in 0.195211 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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