MFC 中创建非模态对话框的若干注意事项

本文介绍如何在MFC工程中通过CADlg主窗口类弹出CBDlg子窗口类的非模态对话框。步骤包括添加类、声明变量、初始化及显示对话框等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我先前按照网上的单一创建教程,在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、完成!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值