硬汉嵌入式论坛

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

[emWin] 如何建立子界面

[复制链接]

39

主题

127

回帖

244

积分

高级会员

积分
244
发表于 2016-9-5 09:27:24 | 显示全部楼层 |阅读模式
在WMEIN主界面中界面中设置一个Button,点击该按钮进入子界面。请问一下该子界面如何创建?   只需说一下大题思路就可以啦(刚开始接触),剩的奔错了方向。谢谢
回复

使用道具 举报

7

主题

61

回帖

82

积分

初级会员

积分
82
发表于 2016-9-5 09:28:24 | 显示全部楼层
我也想问这个
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2016-9-5 09:55:35 | 显示全部楼层
在按钮的回调消息里面调用函数GUI_CreateDialogBox创建就可以了。

你的emWin主程序的while循环里面仅需一个

while(1)
{
     GUI_Dealy(10);
}
回复

使用道具 举报

39

主题

127

回帖

244

积分

高级会员

积分
244
 楼主| 发表于 2016-9-5 17:41:50 | 显示全部楼层

回 eric2013 的帖子

eric2013:在按钮的回调消息里面调用函数GUI_CreateDialogBox创建就可以了。

你的emWin主程序的while循环里面仅需一个

while(1)
....... (2016-09-05 09:55) 
我实验了一下,可以创建子界面啦[s:151][s:150],但怎么设置一个Button键进行返回主界面啊?
回复

使用道具 举报

39

主题

127

回帖

244

积分

高级会员

积分
244
 楼主| 发表于 2016-9-5 17:43:21 | 显示全部楼层

回 toutou205 的帖子

toutou205:我也想问这个 (2016-09-05 09:28) 
按照管理员的回复做就可以啦。
回复

使用道具 举报

39

主题

127

回帖

244

积分

高级会员

积分
244
 楼主| 发表于 2016-9-6 09:04:52 | 显示全部楼层

回 eric2013 的帖子

eric2013:在按钮的回调消息里面调用函数GUI_CreateDialogBox创建就可以了。

你的emWin主程序的while循环里面仅需一个

while(1)
....... (2016-09-05 09:55) 
在进入子界面前还用不用删除原来的主界面啊?
回复

使用道具 举报

1

主题

9

回帖

12

积分

新手上路

积分
12
发表于 2016-9-6 16:01:54 | 显示全部楼层

回 坚持再坚持 的帖子

坚持再坚持:在进入子界面前还用不用删除原来的主界面啊? (2016-09-06 09:04) 
可以通过创建新的Dialog来作为新的界面,原来的界面关闭或者不关闭都是可以的,但当你切换回原界面时,处理方法是不同的。比如你关闭了原来的界面,返回时就要再次创建它。而如果没有关闭,返回时就不能再创建原来的界面,那样你就有了2个原来的界面,是不对的。
回复

使用道具 举报

39

主题

127

回帖

244

积分

高级会员

积分
244
 楼主| 发表于 2016-9-6 17:23:37 | 显示全部楼层

回 kxc2000 的帖子

kxc2000:可以通过创建新的Dialog来作为新的界面,原来的界面关闭或者不关闭都是可以的,但当你切换回原界面时,处理方法是不同的。比如你关闭了原来的界面,返回时就要再次创建它。而如果没有关闭,返回时就不能再创建原来的界面,那样你就有了2个原来的界面,是不对的。 (2016-09-06 16:01) 
我创建了两个界面,这两个界面之间都是在回调函数中通过Button进行界面切换的,但来回切换几次后程序就卡死啦,请问这是什么原因啊?
回复

使用道具 举报

39

主题

127

回帖

244

积分

高级会员

积分
244
 楼主| 发表于 2016-9-6 17:27:47 | 显示全部楼层

回 kxc2000 的帖子

kxc2000:可以通过创建新的Dialog来作为新的界面,原来的界面关闭或者不关闭都是可以的,但当你切换回原界面时,处理方法是不同的。比如你关闭了原来的界面,返回时就要再次创建它。而如果没有关闭,返回时就不能再创建原来的界面,那样你就有了2个原来的界面,是不对的。 (2016-09-06 16:01) 
我搜了一些帖子是说以创建或删除窗口的句柄又被使用,不清楚什么意识?
回复

使用道具 举报

7

主题

61

回帖

82

积分

初级会员

积分
82
发表于 2016-9-6 19:27:36 | 显示全部楼层

回 坚持再坚持 的帖子

坚持再坚持:按照管理员的回复做就可以啦。 (2016-09-05 17:43) 
还是没怎么懂
回复

使用道具 举报

39

主题

127

回帖

244

积分

高级会员

积分
244
 楼主| 发表于 2016-9-6 21:26:50 | 显示全部楼层

回 toutou205 的帖子

toutou205:还是没怎么懂 (2016-09-06 19:27) 
就是再像创建主界面一样创建一个自界面,在主界面的BUTTON中调用子界面的函数
回复

使用道具 举报

1

主题

9

回帖

12

积分

新手上路

积分
12
发表于 2016-9-7 15:59:12 | 显示全部楼层

回 坚持再坚持 的帖子

坚持再坚持:我创建了两个界面,这两个界面之间都是在回调函数中通过Button进行界面切换的,但来回切换几次后程序就卡死啦,请问这是什么原因啊? (2016-09-06 17:23) 
你这种情况我也遇到过,主要是因为之前的界面没有关闭,切换后又重新被创建,这样内存就不会释放,慢慢的就死机了,因为没有动态内存了。
回复

使用道具 举报

1

主题

9

回帖

12

积分

新手上路

积分
12
发表于 2016-9-7 16:02:04 | 显示全部楼层

回 坚持再坚持 的帖子

坚持再坚持:我搜了一些帖子是说以创建或删除窗口的句柄又被使用,不清楚什么意识? (2016-09-06 17:27) 
我现在使用以下的2行代码来切换界面
GUI_EndDialog(pMsg->hWin, 0);
CreateFramewin1();

第1行是关闭了当前的Dialog,
第2行是创建了新的Dialog。

切换回来的时候也这样操作,然后你就会发现动态内存能够正常释放了,无论你切换多少次都没关系了。
回复

使用道具 举报

39

主题

127

回帖

244

积分

高级会员

积分
244
 楼主| 发表于 2016-9-7 19:56:15 | 显示全部楼层

回 kxc2000 的帖子

kxc2000:我现在使用以下的2行代码来切换界面
GUI_EndDialog(pMsg->hWin, 0);
CreateFramewin1();

....... (2016-09-07 16:02) 
原来我也收到了这样的方法,但实验之后还是不行。就是因为我把hWin=CreateFramewin1();又封装在了另一个函数中   
hWin=CreateFramewin1();
//    while(1)
//    {
//        GUI_Delay(100);
//    }
多加了一个死循环造成的。
回复

使用道具 举报

7

主题

61

回帖

82

积分

初级会员

积分
82
发表于 2016-9-8 10:30:23 | 显示全部楼层

回 坚持再坚持 的帖子

坚持再坚持:就是再像创建主界面一样创建一个自界面,在主界面的BUTTON中调用子界面的函数 (2016-09-06 21:26) 
好的谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-18 00:27 , Processed in 0.046762 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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