基于基本对话框的mfc中,在一个cdialog的对话框下如何弹出一个我新建的基类是cview的对话框
1个回答
展开全部
“新建的基类是cview的对话框”,这个本身就是错误的,对话框不可能基于CView,CView本身也不能成为窗口,虽然他是CWnd继承,但使用中必须配合框架窗口,不能单独存在。
对话框所谓跳转,就是调用关系,模态对话框调用和返回只有一个函数DoModal;非模态用Create和ShowWindow。
对话框所谓跳转,就是调用关系,模态对话框调用和返回只有一个函数DoModal;非模态用Create和ShowWindow。
更多追问追答
追问
那我可不可以通过在基于对话框的mfc中通过一个按钮打开一个我用基于单文档编写好的程序,简单的说就是我编了一个登录注册系统,是用基本对话框编的,现在我想通过一个按钮如果登录成功了就跳转到一个游戏界面进行游戏,可以用什么办法实现?
追答
这种情况,最合理的办法是在基于单文档的程序入口处,加入模态对话框调用。这样逻辑比较合理,安全也有保障。
具体办法:找到app类的InitInstance函数,在主框架窗口创建和显示代码之前:
CLoginDialog dlg;
if(IDOK==dlg.DoModal())
{
//调用创建代码,也就是原有代码
}
else
{
return FALSE;//不进入程序,直接退出
}
当然,你也可以对话框程序调用原有程序,只需在对话框程序DoModal()==IDOK处,调用函数:
WinExec
ShellExecute
CreateProcess
之一,来调用你的另一个程序即可,不过这种方式,游戏程序本身没有安全判断,登陆注册等于虚设。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询