MFC 中创建非模态对话框的若干注意事项
2018-01-05 21:34
267 查看
我先前按照网上的单一创建教程,在mfc工程中生成非模态对话框,但是一直出现问题,具体问题是什么已经记不起来了。我把正确的创建方式写在这里。
我的主窗口类为CADlg,子窗口类为CBDlg,我想在点击类CADlg窗口的一个控件的时候以非模态方式弹出关联了类CBDlg的子窗口。具体如下:
1、为子窗口添加类CBDlg,并在主类CADlg的头文件中包含类CBDlg的头文件;
2、在主类CADlg的头文件中添加两行代码:
class CBDlg;
class CADlg : public CDialogEx
{
// 构造
public:
CADlg(CWnd* pParent = NULL);// 标准构造函数
~CADlg();//析构函数
//用来创建细节显示的非模态对话框
CBDlg *Bdlg;
}
3、在主类CADlg的cpp文件中的函数CADlg::CADlg(CWnd* pParent /*=NULL*/): CDialogEx(CADlg::IDD, pParent)
中添加初始化代码:
CADlg::CADlg(CWnd* pParent /*=NULL*/)//主窗口显示前的初始化
: CDialogEx(CADlg::IDD, pParent)
{
Bdlg = NULL;
}
4、在主类CADlg的cpp文件中的对应的控件响应函数中添加如下代码:
if (dlg== NULL)//判定对话框是否有所指向
{
dlg= newCBDlg();//指向一个非模对话框示例
dlg->Create(此处填入对应的子窗口ID, this);//创建
}
dlg->ShowWindow(SW_SHOW);//显示
5、完成!
我的主窗口类为CADlg,子窗口类为CBDlg,我想在点击类CADlg窗口的一个控件的时候以非模态方式弹出关联了类CBDlg的子窗口。具体如下:
1、为子窗口添加类CBDlg,并在主类CADlg的头文件中包含类CBDlg的头文件;
2、在主类CADlg的头文件中添加两行代码:
class CBDlg;
class CADlg : public CDialogEx
{
// 构造
public:
CADlg(CWnd* pParent = NULL);// 标准构造函数
~CADlg();//析构函数
//用来创建细节显示的非模态对话框
CBDlg *Bdlg;
}
3、在主类CADlg的cpp文件中的函数CADlg::CADlg(CWnd* pParent /*=NULL*/): CDialogEx(CADlg::IDD, pParent)
中添加初始化代码:
CADlg::CADlg(CWnd* pParent /*=NULL*/)//主窗口显示前的初始化
: CDialogEx(CADlg::IDD, pParent)
{
Bdlg = NULL;
}
4、在主类CADlg的cpp文件中的对应的控件响应函数中添加如下代码:
if (dlg== NULL)//判定对话框是否有所指向
{
dlg= newCBDlg();//指向一个非模对话框示例
dlg->Create(此处填入对应的子窗口ID, this);//创建
}
dlg->ShowWindow(SW_SHOW);//显示
5、完成!
相关文章推荐
- 非模态对话框的创建和销毁及全局指针的使用注意事项
- 创建MFC动态链接库注意事项
- mfc创建动态库注意事项
- 非模态对话框的创建及注意事项
- SQL Server Alwayson创建代理作业注意事项
- 在VS2005 正确地创建、部署和维护由1.1迁移到ASP.NET 2.0 应用程序注意事项
- 关于ant 部署的若干注意事项
- MFC多线程编程注意事项
- TSQL创建数据库的格式和注意事项
- linux 创建ftp的几个注意事项(以vsftpd为例)
- MFC创建一个非模态对话框
- ExtJs4动态创建Form注意事项
- git 创建 .gitignore 文件过滤规则及注意事项
- 程序员必看:关于的若干注意事项
- Android初识-创建项目时注意事项
- 关于的若干注意事项
- 关于SQL Server的若干注意事项
- springMVC项目自动生成代码-创建数据库注意事项
- DBLINK 创建的注意事项
- cocos2d-x注意事项(十)Lua发展飞机战争-4-创建主角