TEXT_SetText(voltage, "过热"); (1)TEXT_SetText(voltage, "正常"); (2) 当写入(1)的时候,显示的是“过热”, 但是,当(2)写进去之后,“正常”就和“过热”重叠了, 试了 TEXT_SetDefaultWrapMode(GUI_WRAPMODE_WORD); //设置默认按字覆盖 TEXT_SetWrapMode(voltage, GUI_WRAPMODE_WORD); //文本按字方式进行覆盖 清除,重绘,覆盖同底色都不行,不知道,好有没有其他的好的方法, 或者,我写错了,能给个例子,我参考一下,谢谢! |
都不会吧 哈哈 重叠了不就是上一次的数据没有清楚掉吗 是不是清楚指令有什么问题
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);
}
}
我这个测试文本不会重复
评分
查看全部评分
感谢,可以用,
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坑了
楼下已经解决了
直接用TEXT_Handle应该属于是一直在一个位置新建文本框,所以一直叠加,而不是修改文本框内容
原来是这样,还是理解不透彻啊,谢谢!