天天看点

【MFC】控件与变量——updata函数&&control和value的区别

在MFC编程中 

很多控件都要有对应的变量存储它的值,以实现代码读取和改变变量的值,完成代码和控件的交互

MFC中 常通过ClassWizard为控件添加和绑定对应的变量及变量类型(不同类型的控件所能绑定的变量类型是有限制的 )

控件所能绑定的变量类型大方向分两种 control和value

control型变量是这个控件所属类的一个实例(对象)可以通过这个变量来对该控件进行一些设置。而value只是用来传递数据,不能对控件进行其它的操作

control型变量可以获得控件的实例,通过这个变量,你可以操纵控件

value型变量仅仅可以获得该控件的public型变量

如果你添加了一个m_CtrlEdit的control型变量你可以调用控件支持的所有函数,如:

m_CtrlEdit.GetStyle(...)

获得控件的输入内容或者说文本内容:

CString str_name;

m_CtrlEdit.GetWindowText(str_name);

MessageBox(str_name,"提示",0);

而value型变量一般用于向控件传递数据,如:变量为CString 类型的 m_Str   m_Str="LosinueriS";  

简而言之 control型变量如名字一样能提供操作级别的功能 大而全 而value变量提供用于数据传递的变量级别功能

当我们定义一个变量为value类型时,我们的代码只能对变量进行操作,那么如何让控件的值与变量进行同步呢?那就要用到我们的Updata()函数

Updata(true):将控件内容装入控件变量  即用户改变了控件的值后通过该函数实现变量的同步改变

Updata(false):将控件变量的值更新控件

Updata():刷新对话框

总之

control就是控件,可以得到长度   高度   是不是可用   是不是可见等

value是个字符串,跟控件绑定在一起,可以通过Update(TRUE/FALSE)相互更新;

Value   就是一个变量

control   就是一个控件。

主要的区别也就是     变量     和     控件之间的区别,虽然他们实质上都是一样的。 

可是选择   Value   ,MFC   会把控件的内容对应到一个变量上。除非你用其他API取得这个 

控件进行操作,否则,就是一个变量而已。主要的用途是   Update 进行数据读写。 

而作为控件,把就是把这个东西直接对应到了一个控件对象上去,比如   CEdit   对象。 

你可以直接用这个对象来进行操作。熟悉了之后,就是一个怎么用怎么方便的问题。从其 

实质来说,我认为没有什么区别,都是控件。不表示,你选了value   ,其控件就不存在, 

只是说选择value   ,MFC的wizard   做了跟多事情,让你面对这个控件可以把它看作一个值而已。