MFC上如何实现点击主窗口上某控件,弹出子窗口并且删除父窗口

我新手,试着自己做个小东西,我的需要就是在主窗口上输入账号密码后点击登录然后弹出子窗口,并且原来那个窗口自动消失,就类似QQ登录时候的那种样子;我直接重写OnOK()函数... 我新手,试着自己做个小东西,我的需要就是在主窗口上输入账号密码后点击登录然后弹出子窗口,并且原来那个窗口自动消失,就类似QQ登录时候的那种样子;
我直接重写OnOK()函数
void CMyselfClientDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog1Dlg* dlg=new CDialog1Dlg(this);
dlg->Create(IDD_DIALOG1,this);
dlg->ShowWindow(SW_SHOW);
}
请问完了再怎么写,谢谢啦
展开
 我来答
深白明G
2013-08-15 · 超过11用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:25.4万
展开全部
有两种处理方法,第一种方法:可以将登陆窗口做主窗口,你的做法就属于这种,这时你真正工作的窗口属于子窗口,所以你不能删除主窗口,因为主窗口不存在了的话,子窗口也就不存在了,你要做的就是把主窗口隐藏起来,如:ShowWindow(SW_HIDE); 第二种方法:可以将登陆窗口做子窗口,实现方法就是,软件一打开,就把主窗口隐藏起来,然后弹出有登陆界面的子窗口,输入正确的账号密码后,再把登陆子窗口退出,并将主窗口显示出来,MFC我搞过一段时间,希望能帮助到你,如果能采纳我的提问就更好不过了。
百度网友1680984
2013-08-14 · TA获得超过414个赞
知道小有建树答主
回答量:968
采纳率:0%
帮助的人:453万
展开全部
void CMyselfClientDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog1Dlg* dlg=new CDialog1Dlg(this);
dlg->Create(IDD_DIALOG1,this);
dlg->ShowWindow(SW_SHOW);

CDialogEx::OnOK();//直接退出对话框就可以了
}
追问
我改了,提示错误是
error C2653: “CDialogEx”: 不是类或命名空间名称
我这个上面改成CDialog::OnOK();可以编译成功但是,运行时候点击登录,后弹出子窗口一闪和父窗口都退出了
追答
写错了 顺序错了

模态对话框可以这么写
void CMyselfClientDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog::OnOK();//放前面

CDialog1Dlg* dlg=new CDialog1Dlg(this);
dlg->Create(IDD_DIALOG1,this);
dlg->ShowWindow(SW_SHOW);
}

非模态对话框可以这么写
void CMyselfClientDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
this->ShowWindow(SW_HIDE);//这句

CDialog1Dlg* dlg=new CDialog1Dlg(this);
dlg->Create(IDD_DIALOG1,this);
dlg->ShowWindow(SW_SHOW);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunnyMiracle14
2013-08-14 · TA获得超过198个赞
知道小有建树答主
回答量:824
采纳率:0%
帮助的人:451万
展开全部
父窗口不能删除,只能隐藏。
加一句this->ShowWindow(SW_HIDE);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式