请问如何用MFC做一个对话框A,点击A的按钮关闭对话框A然后弹出对话框B?请详细一点,谢谢
解决方案 »
- CRichEditCtrl想做个文字编辑软件,主要能保存里面的字体样式
- 有点奇怪
- 如何用activex实现可定制的面板~~~~~
- 各位界面高手,我想在一个CWnd派生类中加入文字超链接功能?哪里有示例?
- 为什么我在类中不能同时定义另一类的两个对象?
- 关于完成端口的数据接收
- 我有个问题,关于安装完vc之后编译器报错的困惑!!!
- 请问我想用switch(ss) 的判别变量ss定义为字符串性有什么方法可以实现?
- 求救:串口收不到电机的反馈信息,但是可以成功发命令给电机
- 知道键盘监视器的朋友请进来(HOOK)
- 我在对话框上添加了个RICHEDIT为什么程序不运行?
- 如何计算字符串在界面显示的合适大小?
if(dlgA.DoModal() == IDOK)
{
CDialogB dlgB;
dlgB.DoModal();
}
那么我开始在ResouceView编辑的对话框为B,他属于一个类b。对应的代码为
b B;
B.DoModal();我现在不知道类b,目标对话框B怎么处理。我现在能做到就是在ResouceView编辑对话框,具体什么关联不是很明白。以前没弄过MFC,请指教
主对话框不能关闭,只能隐藏:ShowWindow(SW_HIDE);
假设你程序的主对话框为A对话框,对应的类为CDlgA,当点击A对话框的确定按钮时,关闭A对话框同时打开B对话框如果假设成立,步骤如下:
1 在资源视图中,添加一个新的对话框资源(比如ID为ID_DIALOGB);
2 双击对话框资源ID_DIALOGB,给该对话框资源添加关联类CDlgB;
3 在资源视图中,双击A对话框资源的确定按钮,确定按钮的响应函数如下:
void CDlgA::OnOK()
{
CDlgB dlgb;
dlgb.DoModal();
CDialog::OnOK();
}//随手写的,凑活看吧
{
CDialog::OnOK(); //这句话应该放在dlgb.DoModal();的前面
CDlgB dlgb;
dlgb.DoModal();
}
这个问题很好解决,你为你这个新的资源创建一个类(想弹出对话框就创建基类是CDialog的)就可以了,比如,在按钮响应函数中定义一个局部的类的对象CPopDlg dlg 在上边高手所说的
void CDlgA::OnOK() //第一个窗口的按钮响应函数
{
CPopDlg dlg;
if(dlg.DoModal)==IDOK)
{
//如果点击ok所作的工作
}if(dlg.DoModal)==IDCANCEL)
{
//如果点击cancel,你所作的工作
}
else{...}
} 不明白代码可以查看msdn中的DoModal返回值
A.DoModal();然后给A 的关闭按钮添加函数CXXXXA::OnButton{
CDialog::OnOK();
}即可
CxxxxDlg::button1()
{
CDialog dlg;
EndDialog(IDCANCEL);
dlg.DoModal();
}
CDialogB b;
a.DoModal();
b.DoModal();
PostMessageW(WM_CLOSE,0,0);
a.DoModal();