你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

emwin的文本重复

[复制链接]
bl2019 提问时间:2019-8-29 16:33 /
TEXT_SetText(voltage, "过热");   (1)TEXT_SetText(voltage, "正常");   (2)
当写入(1)的时候,显示的是“过热”, 但是,当(2)写进去之后,“正常”就和“过热”重叠了,
试了
TEXT_SetDefaultWrapMode(GUI_WRAPMODE_WORD);  //设置默认按字覆盖
TEXT_SetWrapMode(voltage, GUI_WRAPMODE_WORD);  //文本按字方式进行覆盖
清除,重绘,覆盖同底色都不行,不知道,好有没有其他的好的方法,
或者,我写错了,能给个例子,我参考一下,谢谢!

捕获.PNG
收藏 评论7 发布时间:2019-8-29 16:33

举报

7个回答
bl2019 回答时间:2019-8-30 09:47:51
都上签到了,还是没有人能解决吗
mylovemcu 回答时间:2019-8-30 09:53:11
bl2019 发表于 2019-8-30 09:47
都上签到了,还是没有人能解决吗

都不会吧  哈哈  重叠了不就是上一次的数据没有清楚掉吗  是不是清楚指令有什么问题
294479435@qq.co 回答时间:2019-8-30 10:57:07
是你其他哪里设置不对吧,
void MainTask( void )
{
        int i = 0;
        char buf[20];
        WM_HWIN hWin;

        GUI_Init();
        GUI_SetBkColor(WINDOW_BKCLR);
        GUI_Clear();

        hWin = CreateWindow();

        TEXT_SetDefaultWrapMode(GUI_WRAPMODE_WORD);  //设置默认按字覆盖
        TEXT_SetWrapMode(WM_GetDialogItem(hWin,ID_TEXT_0), GUI_WRAPMODE_WORD);  //文本按字方式进行覆盖
       
        /*TEXT_SetText(ID_TEXT_0, "过热");*/
        while(1)
        {
               
                  i ++;
                  if(i >= 10000)
                          i = 0;
                 GUI_Delay(500);
                 sprintf(buf,"Num: %5d ",i);
                 TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_0), buf);
        }

}
我这个测试文本不会重复
微信截图_20190830105634.png

评分

参与人数 1ST金币 +10 收起 理由
bl2019 + 10 很给力!

查看全部评分

bl2019 回答时间:2019-8-30 11:22:20
00-405686 发表于 2019-8-30 10:57
是你其他哪里设置不对吧,
void MainTask( void )
{

感谢,可以用,   
TEXT_SetWrapMode(WM_GetDialogItem(hWin,ID_TEXT_0), GUI_WRAPMODE_WORD);  //文本按字方式进行覆盖
TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_0), buf);
要用 WM_GetDialogItem(hWin,ID_TEXT_0),
我是直接用TEXT_Handle,被API坑了



getDialog.png
settext.png
warp.png
bl2019 回答时间:2019-8-30 11:25:31
mylovemcu 发表于 2019-8-30 09:53
都不会吧  哈哈  重叠了不就是上一次的数据没有清楚掉吗  是不是清楚指令有什么问题 ...

楼下已经解决了
294479435@qq.co 回答时间:2019-8-30 11:27:58
bl2019 发表于 2019-8-30 11:22
感谢,可以用,   
TEXT_SetWrapMode(WM_GetDialogItem(hWin,ID_TEXT_0), GUI_WRAPMODE_WORD);  //文本按 ...

直接用TEXT_Handle应该属于是一直在一个位置新建文本框,所以一直叠加,而不是修改文本框内容
bl2019 回答时间:2019-8-30 11:30:37
00-405686 发表于 2019-8-30 11:27
直接用TEXT_Handle应该属于是一直在一个位置新建文本框,所以一直叠加,而不是修改文本框内容 ...

原来是这样,还是理解不透彻啊,谢谢!

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版