您当前的位置: 首页 > 

txwtech

暂无认证

  • 1浏览

    0关注

    813博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

(MFC中子窗口调用父窗口指针(子类调用父类))VS2015-MFC 引发了异常 读取访问权限冲突

txwtech 发布时间:2019-01-08 22:26:56 ,浏览量:1

如果按照如下方法:(MFC中子窗口调用父窗口指针(子类调用父类))

引发了异常 读取访问权限冲突,见底部解决方法。

///

一、创建子窗口

二、子窗口调用父窗口指针的函数代码

CMFCDlg *pDlg = (CMFCDlg*)this->GetParent();

m_DeviceCurSel = pDlg->m_nDeviceCurSel;

注:工程说明,我的工程是调用相机的参数并对其进行设置,其中相机的编号是在父窗口类中定义和说明的,而相机参数是在子窗口类中定义和声明的,这就需要子窗口调用父窗口的相机编号这个参数。

上面两行代码中CMFCDlg为父窗口类。

具体过程:

1、在子窗口的.h头文件中定义虚函数OnInitDialog(),并在.cpp文件中添加虚函数OnInitDialog()声明1).h头文件中定义虚函数OnInitDialog()public:virtual BOOL OnInitDialog();

2).cpp文件中添加虚函数OnInitDialog()

声明

BOOL Cdialog1::OnInitDialog()

{

CDialog::OnInitDialog();

// TODO:  在此添加额外的初始化return TRUE;

 // return TRUE unless you set the focus to a control

// 异常: OCX 属性页应返回 FALSE

}

2、添加调用父窗口指针的函数代码

BOOL Cdialog1::OnInitDialog()

 

{

CDialog::OnInitDialog;

CMFCDlg *pDlg = (CMFCDlg*)this->GetParent();

m_DeviceCurSel = pDlg->m_nDeviceCurSel;

return TRUE;

}

注:因为生成的父窗口指针pDlg为函数OnInitDialog()的局部变量,不能为全局所用,所以要将其传递给一个全局变量,这里为m_DeviceCurSel,将m_DeviceCurSel在子窗口头文件中定义“public:int   m_DeviceCurSel ;”,这样就可以全局使用该变量了。或者将pDlg传递给一个全局指针,也可以全局使用并调用父窗口其它变量。

 

void Dialog_Home::OnBnClickedBtnDectect()

{
	MessageBox("您输入的《桶编号》正确吗?", "操作提示", MB_ICONEXCLAMATION | MB_OKCANCEL);
	//------------------获取主窗口fDoseRate剂量数据----------------------
	CSeriPortSendDlg *pDlg = (CSeriPortSendDlg*)this->GetParent();

	if (pDlg != NULL)

	{

		m_DectectorValue = pDlg->fDoseRate;
		pDlg->OnBnClickedButton7();

		delete pDlg;

		pDlg = nullptr;

	}
	CString strDoseRate;
	strDoseRate.Format(_T("%0.3f"), m_DectectorValue);
	//MessageBox(strDoseRate);
//-------------------------------------------------

 

CSeriPortSendDlg *pDlg = (CSeriPortSendDlg*)this->GetParent();//  

//CSeriPortSendDlg是父窗口类,fDoseRate是父窗口的变量,OnBnClickedButton7()是父窗口的触发按钮

    if (pDlg != NULL)

    {

        m_DectectorValue = pDlg->fDoseRate;         pDlg->OnBnClickedButton7();

        delete pDlg;

        pDlg = nullptr;

    }

关注
打赏
1665060526
查看更多评论
立即登录/注册

微信扫码登录

0.0379s