硬汉嵌入式论坛

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

[emWin] 求助硬汉哥,emWin界面切换十几次就卡死了

[复制链接]

22

主题

114

回帖

180

积分

初级会员

积分
180
发表于 2020-9-9 14:22:31 | 显示全部楼层 |阅读模式
以这种方式切换界面会导致卡死???我切了十几次就卡死了,每次释放消息都是重复创建窗口的吗?
  case WM_NOTIFICATION_RELEASED:
  GUI_EndDialog(pMsg->hWin,0);
  hItemRecord = GUI_CreateDialogBox(_aDialogCreateRecordPage, GUI_COUNTOF(_aDialogCreateRecordPage), _cbDialogRecordPage,WM_HBKWIN, 0, 0);
  break;
回复

使用道具 举报

19

主题

379

回帖

436

积分

高级会员

积分
436
发表于 2020-9-9 14:43:10 | 显示全部楼层
GUI_CreateDialogBox不要放在回调函里试试看
回复

使用道具 举报

22

主题

114

回帖

180

积分

初级会员

积分
180
 楼主| 发表于 2020-9-9 16:09:21 | 显示全部楼层
h_007 发表于 2020-9-9 14:43
GUI_CreateDialogBox不要放在回调函里试试看

那要放哪里?我想实现按下按键切换页面,创建页面函数不是要放在按钮的消息里吗
回复

使用道具 举报

15

主题

73

回帖

118

积分

初级会员

积分
118
发表于 2020-9-9 17:18:33 | 显示全部楼层
zxc19970106 发表于 2020-9-9 16:09
那要放哪里?我想实现按下按键切换页面,创建页面函数不是要放在按钮的消息里吗

建议创建窗口与删除窗口全部放在WM_TIMER里处理,之前用5.32版本,有时候直接在WM_KEY消息下创建、删除窗口会出现错误,具体原因未查明
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107380
QQ
发表于 2020-9-9 17:25:12 | 显示全部楼层
回复

使用道具 举报

19

主题

379

回帖

436

积分

高级会员

积分
436
发表于 2020-9-9 17:25:23 | 显示全部楼层
上一级,就是创建界面并传入回调函数的地方。回调函数里面一般不要调用创建新界面之类会触发动态内存分配的东东
回复

使用道具 举报

22

主题

114

回帖

180

积分

初级会员

积分
180
 楼主| 发表于 2020-9-9 17:44:30 | 显示全部楼层
eric2013 发表于 2020-9-9 17:25
参考我的这个

http://www.armbbs.cn/forum.php?m ... 9834&extra=page%3D1

我就是用的您这个方法弄得,但是测试发现动态内存在不断减小,不知道是什么原因。
                case ID_BUTTON_0: // Notifications sent by 'Button'
                switch(NCode) {
                case WM_NOTIFICATION_CLICKED:
                break;
                case WM_NOTIFICATION_RELEASED:
                GUI_EndDialog(pMsg->hWin,0);
                hItemRecord = GUI_CreateDialogBox(_aDialogCreateRecordPage, GUI_COUNTOF(_aDialogCreateRecordPage), _cbDialogRecordPage,WM_HBKWIN, 0, 0);
                SysParameterCur.nHwlStatus = 2;
                break;
                }
                break;
                case ID_BUTTON_1: // Notifications sent by 'Button'
                switch(NCode) {
                case WM_NOTIFICATION_CLICKED:
                break;
                case WM_NOTIFICATION_RELEASED:
                GUI_EndDialog(pMsg->hWin,0);
                hItemPassWord = GUI_CreateDialogBox(_aDialogCreatePassWordPage, GUI_COUNTOF(_aDialogCreatePassWordPage), _cbDialogPassWordPage,WM_HBKWIN, 0, 0);
                break;
                }
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107380
QQ
发表于 2020-9-10 10:04:06 | 显示全部楼层
zxc19970106 发表于 2020-9-9 17:44
我就是用的您这个方法弄得,但是测试发现动态内存在不断减小,不知道是什么原因。
                case ID_BUTTON_0:  ...

使用我的原始例子跑。
回复

使用道具 举报

22

主题

114

回帖

180

积分

初级会员

积分
180
 楼主| 发表于 2020-9-10 10:25:34 | 显示全部楼层
eric2013 发表于 2020-9-10 10:04
使用我的原始例子跑。

原始例子是哪个?
回复

使用道具 举报

0

主题

101

回帖

101

积分

初级会员

积分
101
发表于 2020-9-10 12:16:27 | 显示全部楼层
尝试
GUI_EndDialog(pMsg->hWin,0);     0 -> 1
回复

使用道具 举报

22

主题

114

回帖

180

积分

初级会员

积分
180
 楼主| 发表于 2020-9-10 14:45:54 | 显示全部楼层
tigerdill 发表于 2020-9-10 12:16
尝试
GUI_EndDialog(pMsg->hWin,0);     0 -> 1

我试了一下你这个方法,几十次之后还是卡死了
回复

使用道具 举报

22

主题

114

回帖

180

积分

初级会员

积分
180
 楼主| 发表于 2020-9-10 14:52:33 | 显示全部楼层
mmo 发表于 2020-9-9 17:18
建议创建窗口与删除窗口全部放在WM_TIMER里处理,之前用5.32版本,有时候直接在WM_KEY消息下创建、删除窗 ...

具体是怎么操作的,我卡在这个问题上好几天了
回复

使用道具 举报

0

主题

101

回帖

101

积分

初级会员

积分
101
发表于 2020-9-10 17:42:37 | 显示全部楼层
如果动态内存一直减少,那你删除的win应该不对
回复

使用道具 举报

22

主题

114

回帖

180

积分

初级会员

积分
180
 楼主| 发表于 2020-9-11 10:31:02 | 显示全部楼层
tigerdill 发表于 2020-9-10 17:42
如果动态内存一直减少,那你删除的win应该不对

都是用的这个GUI_EndDialog(pMsg->hWin,0),句柄是hItem = pMsg->hWin,按理来说应该没问题啊
回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
发表于 2021-7-3 15:36:35 | 显示全部楼层
mmo 发表于 2020-9-9 17:18
建议创建窗口与删除窗口全部放在WM_TIMER里处理,之前用5.32版本,有时候直接在WM_KEY消息下创建、删除窗 ...

你好,请问这个问题后面你找到原因了嘛?我现在出现切换界面多次(或切换界面几次后)出现卡死。使用的就是5.32版本的STemWIN,同时界面的切换也是在WM_KEY中实现。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107380
QQ
发表于 2021-7-3 19:07:24 | 显示全部楼层
qtxxcj123 发表于 2021-7-3 15:36
你好,请问这个问题后面你找到原因了嘛?我现在出现切换界面多次(或切换界面几次后)出现卡死。使用的就 ...

试试我这个界面切换的案例在你的平台是否正常
http://www.armbbs.cn/forum.php?mod=viewthread&tid=19834
QQ截图20210703190713.png


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 08:49 , Processed in 0.319413 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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