您的位置:首页 > 其它

1.2学习MFC之控件数据交换UpdateData

2015-01-04 19:38 323 查看
在编写MFC程序时,需要用到大量控件,用于数据的输入输出。这些控件中的变量与程序变量的传递,依靠的是UpdateData这一函数。

UpdateData()参数有两个,默认为TRUE。

    UpdateData(TRUE),刷新控件内的值到对应的变量。 即:控件的值-->变量。

    UpdateData(FALSE),拷贝变量的值到控件中显示。即:变量-->控件内容。

一个简单的例子:对话框中有三个编辑框:EDIT1,EDIT2,EDIT3;对应了三个整型变量m_num1, m_num2和m_sum。

点击按钮之后,EDIT1,EDIT2中的数传递到变量m_num1和m_num2中,求和,显示到m_sum中。

首先将相关控件放到对话框上,然后为编辑框添加成员变量。



然后给按钮添加点击函数。

void CUpdateDataDlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE); // 控件中的值传递到变量中
m_sum = m_num1 + m_num2; // 完成相加
UpdateData(FALSE); // 变量中的值更新到控件中
}


运行效果如下图所示。



UpdateData函数刷新的是整个对话框中控件的数据。

也可以单独设置或取得某些控件的数据。可以使用SetDlgItemText()和GetDlgItemText()这两个函数(方案一);  或者SetWindowText()和GetWindowText()这两个函数(方案二)。

给出方案一的实验效果。



核心代码。

// 下面两个函数用来演示SetDlgItemText()和GetDlgItemText()这两个函数
void CUpdateDataDlg::OnButton3()
{
// SetDlgItemText,设置第4个编辑框中的内容
SetDlgItemText(IDC_EDIT4, "set");
}

void CUpdateDataDlg::OnButton2()
{
// GetDlgItemText按钮, 取得第4个编辑框中的内容,显示到第5个编辑框中
CString tmp;
GetDlgItemText(IDC_EDIT4, tmp);
SetDlgItemText(IDC_EDIT5, tmp);
}

下面给出方案二的效果和核心代码



// 下面两个函数用来演示SetWindowText()和GetWindowText()这两个函数
void CUpdateDataDlg::OnSetWindowText()
{
// TODO: Add your control notification handler code here
m_edit6.SetWindowText("setWindowText");
}

void CUpdateDataDlg::OnGetWindowText()
{
// TODO: Add your control notification handler code here
char tmp[1000];
m_edit6.GetWindowText(tmp, 1000);
m_edit7.SetWindowText(tmp);
}
相关VC6工程文件链接:http://pan.baidu.com/s/1bntnYVl
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc 对话框 控件