MFC非模态对话框的创建及显示

我们需要在原对话框CMFC_Kinect_TrackingDlg设计一个按钮,点击这个按钮后弹出一个非模态对话框Color_Based_SettingDlg,

并且同时两个对话框都是激活状态,都可以自由操作,步骤入下:

1.在头文件MFC_Kinect_TrackingDlg.h中包含Color_Based_SettingDlg.h

2.在MFC_Kinect_TrackingDlg.h中的类CMFC_Kinect_TrackingDlg添加一个Color_Based_SettingDlg对话框的成员变量

并声明为私有类型。

private:
	//new a Color_Based_SettingDlg obj pointor
	Color_Based_SettingDlg * m_pColorBasedSetting;

3.添加构造函数。如果cpp文件中函数太多,我们可以在Class View上半个视图中找到CMFC_Kinect_TrackingDlg类(在MFC_Kinect_TrackingDlg.cpp中),再在下半个视图中找到其构造函数双击,中间客户区域即可马上切到构造函数的实现处。在构造函数体中添加m_pColorBasedSetting= NULL;


4. 在构造函数下方添加一个析构函数,找寻位置和方法和构造函数一样,另外,还需要在MFC_Kinect_TrackingDlg.h中对析构函数进行声明,位置在构造函数下方。

//析构函数
CMFC_Kinect_TrackingDlg::~CMFC_Kinect_TrackingDlg()
{
	if( NULL != m_pColorBasedSetting)
		delete m_pColorBasedSetting;
}

5. 接下来就可以在对话框 CMFC_Kinect_TrackingDlg的消息处理函数OnBnClickedButtonColorSetting中创建非模态对话框

并添加要处理的函数。

	if(NULL == m_pColorBasedSetting)
	{
		m_pColorBasedSetting = new Color_Based_SettingDlg;
		//define Color_Based_SettingDlg dialog
		m_pColorBasedSetting-> Create( IDD_DIALOG_BASE_COLOR_SETTING,this); 
	}
	m_pColorBasedSetting->SetWindowPos( NULL, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE ); 
	m_pColorBasedSetting->ShowWindow( SW_SHOW ); 
    m_pColorBasedSetting->SetActiveWindow();




  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值