最近写程序的时候用到UpdateData()函数,但是,经常混淆UpdateData(TRUE)和UpdateData(FALSE),好记心不如烂笔头啊,举个
最简单的例子加强一下记忆吧。
UpdateData(TRUE): 刷新控件的值到对应的变量。(外部输入值交给内部变量) 即:控件的值—>变量。
UpdateData(FALSE):拷贝变量值到控件显示。(变量的最终运算结果值交给外部输出显示) 即:变量值—>控件显示。
举个例子:
简单的乘法运算,包含三个文本框控件、一个按钮,通过对按钮的响应,执行乘法运算,并将结果显示到其中一个文本框中。
具体操作步骤:
1、为文本框控件添加变量
由于是直接获取值进行运算,所以在添加变量时,变量类别为:value;变量类型为:int;
三个文本框变量名分别为:m_First、m_Second和m_Result
2、设置按钮ID
为了编程规范,一般,程序员朋友最好应按照命名规则重新命名按钮ID,在这里,定义按钮ID为:IDC_BUTTON_Cal
3、开始编写程序
由于程序是单击按钮响应执行,所以在click中,写代码,设置完ID后,双击对话框中的按钮就可以自动转到按钮的单击事件中
OnBnClickedButtonCal()
{
UpdateData(TRUE); //刷新控件值到对应的变量中
m_Result=m_First * m_Second; //参见见说明1)
UpdateData(FALSE); //变量值显示到控件尚
}
4、说明
1)由于在文本框添加变量时,变量的类别为:Value,所以,可以直接对变量进行操作
2)若类别为:control,则无法直接对变量进行操作,需要先通过GetWindowText()函数获取文本框内容,而获取的内容是字符串类型,无法直接进行运行,所以,还需将字符串转换为数值类型(atol),计算完毕之后,再通SetWindowText()函数将结果显示到文本框中。。。。。
呵呵,2)中的方法是不是复杂很多啊?了解用法就行,个人根据自己的编程习惯吧。