mfc 弹出对话框 关闭主对话框
时间: 2023-08-18 21:07:13 浏览: 65
你可以在主对话框的代码中添加以下代码以在弹出对话框后关闭主对话框:
```c++
// 创建模态对话框
CMyDialog dlg;
dlg.DoModal();
// 关闭主对话框
CDialog::OnOK();
```
在这个例子中,`CMyDialog` 是你要弹出的对话框的类名。当 `DoModal()` 被调用时,程序将会等待用户关闭对话框并返回对话框的返回值。一旦对话框被关闭,你可以在 `OnOK()` 函数中关闭主对话框。
相关问题
mfc弹出对话框时就关闭主对话框
你可以在主对话框的 `OnInitDialog()` 函数中添加以下代码以在弹出对话框时关闭主对话框:
```c++
// 创建模态对话框
CMyDialog dlg;
dlg.DoModal();
// 关闭主对话框
EndDialog(IDOK);
```
在这个例子中,`CMyDialog` 是你要弹出的对话框的类名。当 `DoModal()` 被调用时,程序将会等待用户关闭对话框并返回对话框的返回值。一旦对话框被关闭,你可以在 `EndDialog()` 函数中关闭主对话框。`IDOK` 是一个预定义的返回值,表示用户点击了对话框上的“确定”按钮。
需要注意的是,如果你在主对话框的 `OnInitDialog()` 函数中关闭主对话框,那么任何在主对话框上的控件(如按钮、文本框等)都将无法使用。因此,你需要在合适的时机关闭主对话框。
mfc 登录成功弹出子对话框 关闭主对话框
你可以在主对话框的登录按钮的响应函数中添加以下代码以在成功后弹出子框并关闭主对话框:
```c++
void CMyDialog::OnLogin()
{
// 判断用户名和密码是否正确
if (IsUserValid(m_username, m_password))
{
// 创建模态对话框
CChildDialog dlg;
dlg.DoModal();
// 关闭主对话框
EndDialog(IDOK);
}
else
{
// 显示错误提示
MessageBox(_T("用户名或密码错误!"));
}
}
```
在这个例子中,`CChildDialog` 是你要弹出的子对话框的类名。当用户点击登录按钮后,程序将会检查用户名和密码是否正确,如果正确则会弹出子对话框并关闭主对话框。如果用户名或密码不正确,则会弹出一个错误提示框。
需要注意的是,如果你在主对话框的 `EndDialog()` 函数中关闭主对话框,那么任何在主对话框上的控件(如按钮、文本框等)都将无法使用。因此,你需要在合适的时机关闭主对话框。