通过MFC中的函数更改控件的值?

时间:2015-05-12 06:34:18

标签: c++ mfc

我为IDC_EDIT1控件设置了一个int变量。 现在我想用功能更改它,但是当点击按钮时,显示错误!

void test()
{
    CthDlg d;
    d.m_text1 = 5;
    d.UpdateData(FALSE);
}

void CthDlg::OnBnClickedOk()
{
    // TODO: Add your control notification handler code here
    // pThread = AfxBeginThread(ThreadFunction, THREAD_PRIORITY_NORMAL);
    test();
}

enter image description here

2 个答案:

答案 0 :(得分:4)

Nan == Nan函数中,您定义了test类的全新实例,并尝试对其进行修改。这不起作用,因为它没有正确创建,也与正在显示的实际对话框无关。

相反,如果CthDlg是一个独立的(非成员)函数,那么你应该将实际的对话框实例作为参数传递,并使用它。

例如

test

答案 1 :(得分:1)

调用DoModal或Create时会创建控件。 因此,只有在创建对话框时才能调用UpdateData。

这是通常的顺序:可以在启动控件之前设置值成员。创建对话框时传输数据,并在使用OnOK关闭对话框时将数据从控件传输回数据成员。