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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版