硬汉嵌入式论坛

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

[emWin] emwin 在回调函数中 删除窗口 死机

[复制链接]

36

主题

149

回帖

262

积分

高级会员

积分
262
发表于 2015-9-20 11:12:50 | 显示全部楼层 |阅读模式
1.设置桌面回调函数。
2.创建以桌面为父的子窗口A。
3.通过子窗口A的回调函数里实体按键case WM_KEY:删除窗口A ,同创建以桌面为父的子窗口B

通过以上操作出现死机现象,界面停留子窗口A,按实体按键无任何反应。是什么原因?窗口切换大家有什么意议?谢谢!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2015-9-20 17:11:24 | 显示全部楼层
创建的什么窗口,是非阻塞的不,另外就是可以参考我们ATM机的例子,这个例子就是楼主的这种方式,支持按键操作
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=5595
回复

使用道具 举报

36

主题

149

回帖

262

积分

高级会员

积分
262
 楼主| 发表于 2015-9-20 17:29:59 | 显示全部楼层
是非阻塞的,你ATM是触屏切换界面,用按键有差别吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2015-9-20 17:33:24 | 显示全部楼层

回 takent 的帖子

takent:是非阻塞的,你ATM是触屏切换界面,用按键有差别吗 (2015-09-20 17:29)
都一样,有个视频演示,你看看。
回复

使用道具 举报

36

主题

149

回帖

262

积分

高级会员

积分
262
 楼主| 发表于 2015-9-20 21:56:52 | 显示全部楼层
好的,谢谢了
回复

使用道具 举报

36

主题

149

回帖

262

积分

高级会员

积分
262
 楼主| 发表于 2015-9-20 22:09:32 | 显示全部楼层
只有在回调函数中按键设置一个标志位,再在主任务while中删除窗口和创建窗口,才能正常切换。原因暂时无解。参考ATM的也没解决。
回复

使用道具 举报

5

主题

582

回帖

597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
597
发表于 2015-9-21 08:43:41 | 显示全部楼层
Windows api里面非模态窗口没有自己的消息循环 都是在父窗口消息循环里处理  并且也不能直接销毁 只能发窗口消息 在对应的消息里删除窗口

稍微捋了点皮毛 真的不懂  估计学好win32 api中有关窗口的知识  搞emwin才会得心应手
回复

使用道具 举报

36

主题

149

回帖

262

积分

高级会员

积分
262
 楼主| 发表于 2015-9-21 09:51:39 | 显示全部楼层
找到原因了,是我分配内存太小导致死机的。什么都回到主循环里处理,逻辑会很乱。eric2013的ATM是很好例程。从中学到不很少东西。
回复

使用道具 举报

22

主题

97

回帖

163

积分

初级会员

积分
163
发表于 2015-9-21 17:07:42 | 显示全部楼层
学习了,我之前也是遇到过这个问题,也是在主循环操作才解决,但不知道是什么原因,原来也是内存的问题
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-15 00:13 , Processed in 0.043310 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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