MFC两窗口(非父子关系)传值失败的问题

问题遇到的现象和发生背景

程序主窗口有一个button,点击button可以创建两个子窗口.
我需要将子窗口1的变量num,传递进子窗口2

调试过程(此时在子窗口2)中出现这样的情况:

img


即子窗口1中的变量num并非0,但是pnum仍然是0

问题相关代码

主窗口按钮的代码:

void CMFCweibullDlg::OnBnClickedButton2Weibull()
{
    // TODO: 双参数Weibull分布
    if (NULL == m_pC2WeibullDlg)
    {
        //创建非模态对话框
        m_pC2WeibullDlg = new C2WeibullDlg();
        m_pC2WeibullDlg->Create(IDD_DIALOG_2Weibull, this);
    }
    //显示非模态对话框
    m_pC2WeibullDlg->ShowWindow(SW_SHOW);
    C2WeibullDlg* child_dlg = (C2WeibullDlg*)m_pC2WeibullDlg;  //强制转换为子窗口类型
    child_dlg->Calculate2Weibull();  //调用子窗口计算分布参数函数

    if (NULL == m_pCpic2WeibullDlg)
    {
        //创建非模态对话框
        m_pCpic2WeibullDlg = new Cpic2WeibullDlg();
        m_pCpic2WeibullDlg->Create(IDD_DIALOG_pic2Weibull, this);
    }
    //显示非模态对话框
    m_pCpic2WeibullDlg->ShowWindow(SW_SHOW);
    Cpic2WeibullDlg* child1_dlg = (Cpic2WeibullDlg*)m_pCpic2WeibullDlg;  //强制转换为子窗口类型
    child1_dlg->Draw2Weibull();  //调用子窗口绘图函数

子窗口2的代码:

void Cpic2WeibullDlg::Draw2Weibull()
{
    
    vector<double>px;
    vector<double>py;

    C2WeibullDlg* pFatherDlg = (C2WeibullDlg*)GetParent();
    int pnum = pFatherDlg->num;

    px = pFatherDlg->x1;
    py = pFatherDlg->wblpdf;
......
}
我的解答思路和尝试过的方法

是不是非父子关系的对话框不能通过GetParent()语句传值呢?

发送自定义消息


修改一下
C2WeibullDlg* pFatherDlg = (C2WeibullDlg*)(GetParent()->GetParent());


```