bl2019 发表于 2019-8-29 16:33:42

emwin的文本重复

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

bl2019 发表于 2019-8-30 09:47:51

都上签到了,还是没有人能解决吗:Q

mylovemcu 发表于 2019-8-30 09:53:11

bl2019 发表于 2019-8-30 09:47
都上签到了,还是没有人能解决吗

都不会吧哈哈重叠了不就是上一次的数据没有清楚掉吗是不是清楚指令有什么问题:P

00-405686 发表于 2019-8-30 10:57:07

是你其他哪里设置不对吧,
void MainTask( void )
{
        int i = 0;
        char buf;
        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);
        }

}
我这个测试文本不会重复

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坑了



bl2019 发表于 2019-8-30 11:25:31

mylovemcu 发表于 2019-8-30 09:53
都不会吧哈哈重叠了不就是上一次的数据没有清楚掉吗是不是清楚指令有什么问题 ...

楼下已经解决了

00-405686 发表于 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应该属于是一直在一个位置新建文本框,所以一直叠加,而不是修改文本框内容 ...

原来是这样,还是理解不透彻啊,谢谢!:handshake
页: [1]
查看完整版本: emwin的文本重复