我为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();
}
答案 0 :(得分:4)
在Nan == Nan
函数中,您定义了test
类的全新实例,并尝试对其进行修改。这不起作用,因为它没有正确创建,也与正在显示的实际对话框无关。
相反,如果CthDlg
是一个独立的(非成员)函数,那么你应该将实际的对话框实例作为参数传递,并使用它。
例如
test
答案 1 :(得分:1)
调用DoModal或Create时会创建控件。 因此,只有在创建对话框时才能调用UpdateData。
这是通常的顺序:可以在启动控件之前设置值成员。创建对话框时传输数据,并在使用OnOK关闭对话框时将数据从控件传输回数据成员。