MFC上如何实现点击主窗口上某控件,弹出子窗口并且删除父窗口
我新手,试着自己做个小东西,我的需要就是在主窗口上输入账号密码后点击登录然后弹出子窗口,并且原来那个窗口自动消失,就类似QQ登录时候的那种样子;我直接重写OnOK()函数...
我新手,试着自己做个小东西,我的需要就是在主窗口上输入账号密码后点击登录然后弹出子窗口,并且原来那个窗口自动消失,就类似QQ登录时候的那种样子;
我直接重写OnOK()函数
void CMyselfClientDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog1Dlg* dlg=new CDialog1Dlg(this);
dlg->Create(IDD_DIALOG1,this);
dlg->ShowWindow(SW_SHOW);
}
请问完了再怎么写,谢谢啦 展开
我直接重写OnOK()函数
void CMyselfClientDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog1Dlg* dlg=new CDialog1Dlg(this);
dlg->Create(IDD_DIALOG1,this);
dlg->ShowWindow(SW_SHOW);
}
请问完了再怎么写,谢谢啦 展开
3个回答
展开全部
有两种处理方法,第一种方法:可以将登陆窗口做主窗口,你的做法就属于这种,这时你真正工作的窗口属于子窗口,所以你不能删除主窗口,因为主窗口不存在了的话,子窗口也就不存在了,你要做的就是把主窗口隐藏起来,如:ShowWindow(SW_HIDE); 第二种方法:可以将登陆窗口做子窗口,实现方法就是,软件一打开,就把主窗口隐藏起来,然后弹出有登陆界面的子窗口,输入正确的账号密码后,再把登陆子窗口退出,并将主窗口显示出来,MFC我搞过一段时间,希望能帮助到你,如果能采纳我的提问就更好不过了。
展开全部
void CMyselfClientDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类
CDialog1Dlg* dlg=new CDialog1Dlg(this);
dlg->Create(IDD_DIALOG1,this);
dlg->ShowWindow(SW_SHOW);
CDialogEx::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);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
父窗口不能删除,只能隐藏。
加一句this->ShowWindow(SW_HIDE);
加一句this->ShowWindow(SW_HIDE);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询