VC MFC中关于非模态对话框的操作
来源:互联网 发布:淘宝 大类目小类目 编辑:程序博客网 时间:2024/04/30 20:17
先对要使用的类进行说明:
CMainDlg 主界面对话框
CChildDlg 子对话框(就是非模态弹出的对话框)
1.在CMainDlg.h中增加#include<ChildDlg.h>
2.在Public:下增加CChildDlg *m_pChildDlg;
3.在CMainDlg.cpp中初始化m_pChildDlg = NULL;
4.在主对话框按钮的单击事件中增加下面的代码
if(m_pChildDlg )m_pChildDlg ->SetActiveWindow();else{m_pChildDlg = new CAGCCfg();m_pChildDlg ->Create(IDD_AGC_CFG,this); m_pChildDlg ->ShowWindow(SW_SHOW);m_pChildDlg ->CenterWindow();}
5.在CChildDlg中增加
void CChildDlg ::PostNcDestroy(){delete this;CDialog::PostNcDestroy();}void CChildDlg ::OnBnClickedCancel(){DestroyWindow();}
写完上面的代码就可以让非模态对话框只能打开一个,但是还有一个问题,就是当这个非模态对话框关闭后,再打开的时候却发现打不开了,是什么原因呢?
调试一下就会发现,当子对话框关闭后,m_pChildDlg这个指针还没有赋空值
所以还要在修改第5步中的代码
void CAGCCfg::OnBnClickedCancel()
{
((CMainDlg *)GetParent())->m_pChildDlg= NULL;
DestroyWindow();
}
按照上面的步骤完成就可以实现只打开一个非模态对话框啦
- VC MFC中关于非模态对话框的操作
- MFC中对话框的操作
- MFC中对话框的操作
- MFC中关于对话框的一些设置
- VC++2005 MFC 编程-对话框的菜单操作
- VC++6.0 MFC对话框操作MySQL数据库的各种问题
- vc中改变对话框的背景色(MFC)
- VC/MFC非模态对话框实例
- VC++中对话框资源操作
- 关于MFC中回车关闭对话框的问题的解决
- MFC关于对话框的问题
- vc 中对对话框的几种操作
- 关于VC操作Office屏蔽掉“服务器正在运行中”要选择“切换到...”或"重试"的对话框
- 关于VC操作Office屏蔽掉“服务器正在运行中”要选择“切换到...”或"重试"的对话框
- 关于VC操作Office屏蔽掉“服务器正在运行中”要选择“切换到...”或"重试"的对话框
- 关于VC操作Office屏蔽掉“服务器正在运行中”要选择“切换到...”或"重试"的对话框
- vc中建立非模态对话框的例子
- vc中建立非模态对话框的例子
- Linux系统下的交换分区和交换文件的含义
- js onmouseout 与onmouseleave的区别
- SQL学习(9)SQL Server培训
- js移除option值的方法
- MSCRM 2011 Lookup类型 过滤 筛选
- VC MFC中关于非模态对话框的操作
- perl模块之MIME::Lite发送有附件的邮件
- Android命令生成build.xml
- 在Linux上单机模拟Oracle 10g RAC集群
- 要求做一个从网页上导入excel
- curl
- keil C调用汇编模块的例子
- ASP.NET GridView绑定数据方法和转换绑定数据
- oracle 数据库启动