硬汉嵌入式论坛

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

[emWin] 在emWin中建立个Dialog后如何更改

[复制链接]

1

主题

0

回帖

1

积分

新手上路

积分
1
发表于 2015-6-15 08:42:45 | 显示全部楼层 |阅读模式
你好,我在一个emWin显示任务中使用 GUI_ExecDialogBox()建立一个窗口,在这窗口中加载有文本Text等部件,想问下为什么在下面的while(1)的函数中无法执行更改Text部件的操作,哪怕是使用GUI_DispStringAt()添加内容也无法显示的,代码大致如下:
void Task_GUI(void *p_arg)
{
      ......

        hDly=GUI_ExecDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),&_cbCallback,0,0,0);         //建立窗口,当中有TEXT部件

        while(1)
        {
              .....
                TEXT_SetText(WM_GetDialogItem(hDly,GUI_ID_TEXT6),(const char*)buf);                               //想对TEXT操作,但无法改变内容
                GUI_DispStringAt("ABC123",150,120);                                                                                       //也无法在界面中内容
              .......
                OSTimeDlyHMSM(0, 0, 0, 100,0,&err);        
        }
}

想问下,当一个Dialog窗口建立后如何在外部对他进行操作啊??一定是在回调函数中吗???
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115749
QQ
发表于 2015-6-15 08:56:58 | 显示全部楼层
特别注意,GUI_ExecDialogBox这个函数创建的对话框是阻塞式对话框,你要把它改成非阻塞的:CreateDialogBox。

另外在emWin任务里面做的这个延迟OSTimeDlyHMSM(0, 0, 0, 100,0,&err);   改成GUI_Delay(100)更合适。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-15 16:39 , Processed in 0.293431 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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