我是MFC世界的新手。我需要为旧应用程序提供一些基于对话框的操作。在那里,我遇到了一个显而易见的事情的麻烦,那就是我似乎无法找到一种方法来关闭我从父母(也是一个模态)调用的子对话框(模态)。在我试过的所有方式中,孩子和父母一直都会立即关闭。 这是我尝试过的: 我在VS 2012 Professional中创建了一个默认的MFC应用程序 ParentDlg.cpp
void ParentDlg::OnBnClickedOk()
{
ChildDlg childDlg;
dialogOutput.DoModal();
CDialogEx::OnOK();
}
在我的Child.cpp中关闭按钮(ID:IDCLOSE) ChildDlg.cpp
void ChildDlg::OnBnClickedClose()
{
// TODO: Add your control notification handler code here
EndDialog(IDCLOSE);
}
但这会关闭父级和子级,但是我只需要关闭子对话框(父对话框应该保持打开状态),因为我点击了子对话框中的“关闭”按钮。
简而言之,我喜欢“IDD_ABOUTBOX”对话框的默认IDOK按钮具有相同的行为,这也是一个“模态”对话框,当我单击其中的“确定”按钮时,它仅关闭“关于”框。
答案 0 :(得分:0)
您只应将IDOK放在关闭按钮的ID属性中。只有子对话框才会关闭。您不应再创建事件处理程序,如果这样做,请删除事件处理程序。