如何实现显示已经隐藏了的对话框

xiaodstay 2014-01-17 04:30:04
比如我有一个登陆界面,有个修改密码按钮,点击后就会弹出修改密码界面,登陆界面为A,修改密码为B.
我想点击修改密码后登陆界面隐藏,只显示修改密码界面,然后关闭修改密码界面时显示登陆界面,求帮助
下面是我的代码,总是在关闭修改密码界面的时候报错.不知道是不是传窗口指针有问题.
登陆界面:
.......
void CMFCAppTjxMini20Dlg::OnBtnPwd()
{
CDlgPwd dlg = new CDlgPwd(this);//传递窗口指针
this->ShowWindow(SW_HIDE);
dlg.DoModal();
}
.......
修改密码界面:

CDlgPwd::CDlgPwd(CWnd* pParent /*=NULL*/)
: CDialogEx(CDlgPwd::IDD, pParent)//pParent是传进来的窗口指针
, pParent(pParent)
{
}
void CDlgPwd::OnBtnEsc()
{
pParent->ShowWindow(SW_SHOW);
CDialogEx::OnCancel();
}
...全文
219 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaodstay 2014-01-18
  • 打赏
  • 举报
回复
引用 6 楼 zhuyf87 的回复:

void 登录界面::按钮单击()
{
	CDlgPwd *pDlg = new CDlgPwd(this);
	pDlg->Create(CDlgPwd::IDD, this);
	ShowWindow(SW_HIDE);
	pDlg->ShowWindow(SW_SHOW);
}

void 修改密码界面:::按钮单击()
{
	pParent_->ShowWindow(SW_SHOW);
	OnCancel();
}
我这样试了一下就可以了,如果楼主的还不行,那就可能是别的代码有问题了。
ok了,可以 谢谢。我是窗口指针传过来没有接收到 才出问题的,太感谢了
zhuyf87 2014-01-18
  • 打赏
  • 举报
回复

void 登录界面::按钮单击()
{
	CDlgPwd *pDlg = new CDlgPwd(this);
	pDlg->Create(CDlgPwd::IDD, this);
	ShowWindow(SW_HIDE);
	pDlg->ShowWindow(SW_SHOW);
}

void 修改密码界面:::按钮单击()
{
	pParent_->ShowWindow(SW_SHOW);
	OnCancel();
}
我这样试了一下就可以了,如果楼主的还不行,那就可能是别的代码有问题了。
见习学术士 2014-01-18
  • 打赏
  • 举报
回复
引用 4 楼 xiaodstay 的回复:
[quote=引用 3 楼 xiaoc1026 的回复:]

void CMFCAppTjxMini20Dlg::OnBtnPwd()
{
CDlgPwd* pDlg = new CDlgPwd(this);//传递窗口指针
pDlg->Create(CDlgPwd::IDD, this);
ShowWindow(SW_HIDE);
pDlg->ShowWindow(SW_SHOW);
}
这样是可以实现第一步 可是在修改密码界面的时候如何隐藏该界面,然后又重新显示登陆界面呢[/quote] 在密码修改界面 操作完成后,密码对话框就销毁呀。 为了避免内存泄露,在WM_DESTORY 消息响应执行 delete this;
xiaodstay 2014-01-18
  • 打赏
  • 举报
回复
引用 3 楼 xiaoc1026 的回复:

void CMFCAppTjxMini20Dlg::OnBtnPwd()
{
CDlgPwd* pDlg = new CDlgPwd(this);//传递窗口指针
pDlg->Create(CDlgPwd::IDD, this);
ShowWindow(SW_HIDE);
pDlg->ShowWindow(SW_SHOW);
}
这样是可以实现第一步 可是在修改密码界面的时候如何隐藏该界面,然后又重新显示登陆界面呢
见习学术士 2014-01-18
  • 打赏
  • 举报
回复

void CMFCAppTjxMini20Dlg::OnBtnPwd()
{
CDlgPwd* pDlg = new CDlgPwd(this);//传递窗口指针
pDlg->Create(CDlgPwd::IDD, this);
ShowWindow(SW_HIDE);
pDlg->ShowWindow(SW_SHOW);
}
xiaodstay 2014-01-18
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
ShowWindow(SW_HIDE); dlg.DoModal(); ShowWindow(SW_SHOW); }
谢谢, 如何我想用非模式对话框该如何操作呢
schlafenhamster 2014-01-17
  • 打赏
  • 举报
回复
ShowWindow(SW_HIDE); dlg.DoModal(); ShowWindow(SW_SHOW); }

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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