第一次MFC。。。关于关闭对话框时内存释放错误??

qq_20681145 2014-09-12 12:03:03
本人是用PreTranslateMessage设置的方向键作用,比方说按下键打开新的对话框,结果新的对话框在关闭时,出现错误提示。
以下为新建的测试事例:
BOOL CAdsgasdgasdgsDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_DOWN){
aa dlg;
dlg.DoModal();
}// TODO: Add your specialized code here and/or call the base class

return CDialog::PreTranslateMessage(pMsg);
}



按下下键后打开另个对话框




然后关掉时就这样了





求教怎么解决
...全文
277 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
饭凉凉 2014-09-12
  • 打赏
  • 举报
回复
引用 2 楼 qq_20681145 的回复:
[quote=引用 1 楼 SFangtao2012 的回复:] 局部变量。你把对话框定义到头文件里面。
就是在主对话框的头文件里定义吧?我试过了,没用唉。。。貌似问题跟PreTranslateMessage有关。。。按钮OnButton打开就没问题[/quote] if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_DOWN){ Cdlggg *pdlg = new Cdlggg; pdlg->Create(IDD_DIALOG1,this); pdlg->ShowWindow(SW_SHOW); 这样写。
qq_20681145 2014-09-12
  • 打赏
  • 举报
回复
引用 6 楼 xiaohuh421 的回复:
不是叫你修改代码, 是叫你看错误的地方. 你没有看到这个断言吗? ASSERT(::IsWindow(m_hWnd)); 意思是程序执行到这里, 窗口一定要有效. 但现的问题是你的程序窗口句柄已经无效了. 问题在这里, 为什么会无效了. 这就要看你对你自己的那个对话框做了什么
可是对话框是新建的啊。。。什么东西都还没加呢。。。用OnButton打开新窗口,关掉时就没问题。。。
qq_20681145 2014-09-12
  • 打赏
  • 举报
回复
引用 4 楼 starytx 的回复:
调试运行一下,我怎么感觉是打开的对话框里有什么问题呢
额。。。对话框是新建的,什么东西都没有。。。调试后的结果图在5楼。。。
xiaohuh421 2014-09-12
  • 打赏
  • 举报
回复
不是叫你修改代码, 是叫你看错误的地方. 你没有看到这个断言吗? ASSERT(::IsWindow(m_hWnd)); 意思是程序执行到这里, 窗口一定要有效. 但现的问题是你的程序窗口句柄已经无效了. 问题在这里, 为什么会无效了. 这就要看你对你自己的那个对话框做了什么
qq_20681145 2014-09-12
  • 打赏
  • 举报
回复
引用 3 楼 xiaohuh421 的回复:
请使用F5调试运行程序,
出现你图中的重误对话框时, 点击"重试"按钮, 然后会弹出另一个对话框, 这时点击"中断", 即可看到出错的地方.
然后就能知道哪里错了.




然后我太白痴了,不知道怎么改。。。我总不能改WINCORE.CPP吧。。。
starytx 2014-09-12
  • 打赏
  • 举报
回复
调试运行一下,我怎么感觉是打开的对话框里有什么问题呢
xiaohuh421 2014-09-12
  • 打赏
  • 举报
回复
请使用F5调试运行程序, 出现你图中的重误对话框时, 点击"重试"按钮, 然后会弹出另一个对话框, 这时点击"中断", 即可看到出错的地方. 然后就能知道哪里错了.
qq_20681145 2014-09-12
  • 打赏
  • 举报
回复
引用 1 楼 SFangtao2012 的回复:
局部变量。你把对话框定义到头文件里面。
就是在主对话框的头文件里定义吧?我试过了,没用唉。。。貌似问题跟PreTranslateMessage有关。。。按钮OnButton打开就没问题
饭凉凉 2014-09-12
  • 打赏
  • 举报
回复
局部变量。你把对话框定义到头文件里面。

65,184

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧