CheckBox值在不同的文件中

时间:2013-01-16 21:33:42

标签: c++ visual-c++ mfc

我需要访问其他程序中的复选框值。复选框在ToolDlg.cpp

中启动
DDX_Control(pDX, IDC_CalculateTBA, m_CalculateTBA);
在oninitdialog发起如下:

    m_CalculateTBA.SetCheck(0);
    CalculateAnalyticTBA = false;


void CToolDlg::OnBnClickedCheck3()
{   
    CalculateAnalyticTBA = m_CalculateTBA.GetCheck();   
}

我需要SetCal.cpp程序中的复选框值。这是我在这个程序中尝试的代码:

 CToolDlg dialog;
 if( dialog.CalculateAnalyticTBA )
{

  Do some thing

}

但是对话框.CalculateAnalyticTBA始终是tru,即使我没有勾选复选框。 如果您需要任何其他信息,请告诉我。 Thanx寻求帮助。

2 个答案:

答案 0 :(得分:1)

看起来你正在创建一个对话框,而且从不显示它。所以CalculateAnalyticTBA具有你在CToolDlg类的构造函数中赋予它的任何值(或者,如果你没有,那么编译器给它的任何值)。

为了设置此值,您必须至少创建对话框,以便数据交换代码(调用DDX_Control并处理复选框和变量的绑定)有机会跑。

答案 1 :(得分:0)

正确的方法是创建并显示CToolDlg对话框并等待用户选择他的选择,然后只在用户最后点击“确定”按钮时处理选项。

CToolDlg dialog;
// create and display the dialog
if (dialog.DoModal()==IDOK)
{  // user clicked the ok button, now do the work
   ....
}