3479|8

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

evc 2个对话框之间的问题 [复制链接]

我在一个工程里面加入了2个对话框。在第一个对话框中点击F1显示第二个对话框。在第二个对话框点击退出的时候显示第一个对话框。然后在第一个对话框点击退出的时候可以关闭整个程序。

但是为什么从第二个对话框退出显示第一个个对话框再退出后中是报一下的错误assertuib failed
file wincore.cpp line 1043.请教各位大侠,因为我自己对evc不是很懂。所以希望大家能帮我,在线等答案哦!

一个的按键响应事件是
BOOL CYDlg::PreTranslateMessage(MSG* pMsg)
{
        // TODO: Add your specialized code here and/or call the base class
        if(pMsg->message==WM_KEYDOWN)
        {
                   CCy dlg;
                switch(pMsg->wParam)
                {
                case VK_F1:
                        dlg.DoModal();
                            break;
                        //DestroyWindow();
                case VK_ESCAPE:
                        PostMessage(WM_CLOSE, 0, 0);
                                       
                }

        }
        return CDialog::PreTranslateMessage(pMsg);

}


另一个的按键响应事件是这个


BOOL CCy::PreTranslateMessage(MSG* pMsg)
{
        // TODO: Add your specialized code here and/or call the base class
        if(pMsg->message==WM_KEYDOWN)
        {
                  CYDlg dlg;
                switch(pMsg->wParam)
                {
                case VK_ESCAPE:
                   dlg.DoModal();


                }
        }
        return CDialog::PreTranslateMessage(pMsg);
}

最新回复

问题解决了 PreTranslateMessage(MSG* pMsg) 和Domodal()一起的时候,在后面要加上,return ture;  详情 回复 发表于 2009-8-5 15:01
点赞 关注

回复
举报

57

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
各位请帮助我改下代码吧。最后能告诉我怎么改,因为我对evc和vc都不是很熟!谢谢大家啦
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
不关闭对话框,改为隐藏对话框
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
能否给我一些类似的代码,我不太理解你说的意思
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

5
 
你可以注册热键方式实现,当按F1时候窗口1隐藏同时窗口2弹出,
当退出窗口2时,窗口1显示;
热键注册可以用REGISTERHOTKEY()函数进行注册,同时在wm_hotkey消息响应;
窗口的显示与隐藏可以用SHOWWINDOW()函数实现
找到两个窗口的句柄,可以使用findwindow()函数
退出函数可以用postquitmessage()

这样应该可以了
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
如果在不行,再给我留言
我编个给你
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
代码中第一个事件第一个对话框并没有关闭
第二个模式对话框,关闭后应该就会显示第一个对话框的,不要再去  dlg.DoModal();;

把第二个事件
case VK_ESCAPE:
  dlg.DoModal();

改成
case VK_ESCAPE:
  PostMessage(WM_CLOSE);

试试
 
 
 

回复

94

帖子

0

TA的资源

一粒金砂(初级)

8
 
我发现,我就是只在第一个对话框上写上以下代码
if(pMsg->message==WM_CHAR)
        {
                switch(pMsg->wParam)
                {
                case 0x31:
                        CC1 dlg;
                        dlg.DoModal();
                }
        }


C1这个对话框能跳出来,但是我在C1上面按esc的时候,就会报错。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

9
 
问题解决了

PreTranslateMessage(MSG* pMsg) 和Domodal()一起的时候,在后面要加上,return ture;
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表