嵌入式学习小组
直播中

陆兰兰

7年用户 153经验值
私信 关注

为什么创建checkbox时一定要使用GUI_ExecDialogBox?

我是在学习checkbox时发现,为什么要创建checkbox时一定要使用GUI_ExecDialogBox创建才能运行,当使用GUI_CreateDialogBox创建时却是黑屏?
1、用GUI_ExecDialogBox创建,例程里的程序源码
//CHECKBOX小工具演示Demo
void CheckBoxDemo(void)
{
        GUI_CURSOR_Show();
        #if GUI_SUPPORT_MEMDEV
                WM_SetCreateFlags(WM_CF_MEMDEV);
        #endif
        WM_SetDesktopColor(GUI_BLACK);
        while(1)
        {
                GUI_ExecDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),&_cbCallback,0,0,0);
                GUI_Delay(500);
        }
}
2、我尝试用GUI_CreateDialogBox创建
//CHECKBOXD¡1¤¾ßÑYê¾Demo
void CheckBoxDemo(void)
{
                GUI_CreateDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),&_cbCallback,0,0,0);
}
谢谢大家帮忙解答。

回帖(4)

颜立歆

2019-8-26 09:10:43
帮顶
举报

李小红

2019-8-26 09:21:38
字面可知带Exec的会执行,而Create只创建,后者配合GUI_Exec()使用。
举报

h1654155275.5998

2019-8-26 09:41:02
谢谢,我还有一个问题,就是为什么其他控件(BUTTON、EDIT)不用EXEC执行,只要Create创建就行?而checkbox却一定要执行?我就是学到这里发现和其他的不一样才有疑问,实在无法理解,麻烦你帮忙解答一下,谢谢。
举报

谢赛

2019-8-26 09:47:00
原子大哥,请教下,
GUI_ExecDialogBox创建了一个对话框,触摸控制放大缩小都正常,点击关闭对话框后,程序没有执行后面的内容,还是在
  while (!DialogStatus.Done) {
    if (!GUI_Exec()) {
      GUI_WaitEvent();      /* Wait for event (keyboard, mouse or whatever) */
    }
  }
里面循环,是什么原因啊?此时已经看不到对话框了啊
举报

更多回帖

发帖
×
20
完善资料,
赚取积分