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

来源:互联网 发布:刘洪波四大讲座 知乎 编辑:程序博客网 时间:2024/06/09 18:57

在编写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 hereUpdateData(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 herem_edit6.SetWindowText("setWindowText");}void CUpdateDataDlg::OnGetWindowText() {// TODO: Add your control notification handler code herechar tmp[1000];m_edit6.GetWindowText(tmp, 1000);m_edit7.SetWindowText(tmp);}

相关VC6工程文件链接:http://pan.baidu.com/s/1bntnYVl

0 0
原创粉丝点击