控件中添加的成员变量value和control的区别

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="hustwjz";  
   
UpdateData(FALSE); //可以向控件传递数据
    
    
UpdateData(TRUE); //可以从控件获得数据

获得输入数据后可以进行相应操作.以下是写文件用到的,把输入的内容写入文件

UpdateData(TRUE);
   student.age=m_age;
   strcpy(student.name,m_char);

CString fPath;
   fPath=GetAppPath();

IniFileHandle->m_FileName.Format(_T("%s"),fPath+_T("student"));
   IniFileHandle->OpenFile(1);
   IniFileHandle->Serialize(student);
   IniFileHandle->CloseFile();

可以使用成员变量来代替某个控件,当控件发生变化时,该成员变量的值也发生变化;
ClassWizard增加成员变量的时候,选择value类型可以创建一个包含由用户来输入
控件文本和控件状态的成员变量;选择Control类型,我们可以对这个控件直接进行访问;

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

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

Value   就是一个变量

control   就是一个控件。

主要的区别也就是     变量     和     控件之间的区别,虽然他们实质上都是一样的。 
可是选择   Value   ,MFC   会把控件的内容对应到一个变量上。除非你用其他API取得这个 
控件进行操作,否则,就是一个变量而已。主要的用途是   UpdateData。进行数据读些。 
而作为控件,把就是把这个东西直接对应到了一个控件对象上去,比如   CEdit   对象。 
你可以直接用这个对象来进行操作。熟悉了之后,就是一个怎么用怎么方便的问题。从其 
实质来说,我认为没有什么区别,都是控件。不表示,你选了value   ,其控件就不存在, 
只是说选择value   ,MFC的wizard   做了跟多事情,让你面对这个控件可以把它看作一个值而已。

时间: 2024-11-05 12:05:17

控件中添加的成员变量value和control的区别的相关文章

JScrollPane控件中添加其他控件的问题&&JScrollPane设置滚动条&&调整滚动速度

如果要在JScrollPane控件中添加其他控件,不能用下面这种方法 JScrollPane j = new JScrollPane();j.add(new JButton("点击")); 只能通过以下方法添加 JScrollPane j = new JScrollPane(new JButton("点击")); 或者 JScrollPane j = new JScrollPane();j.getViewport().add(new JButton("点击

DateTimePicker在toolStrip控件中添加

toolStrip控件中要添加日期控件时,首先定义宏控件 DateTimePicker BeginTime = new DateTimePicker(); 然后在界面构造函数中,在目标位置插入控件 1 public JILiangTestDetailUI() 2 { 3 InitializeComponent(); 4 5 ToolStripControlHost begin = new ToolStripControlHost(BeginTime); 6 7 this.toolStrip1.I

控件中添加GIF图片以及运用双缓冲使其不闪烁以及背景是gif时使控件(如panel)变透明

Image img = Image.FromFile(@"C:\Users\joeymary\Desktop\3.gif"); pictureBox1.Image =img.Clone() as Image; //label1.Image = img.Clone() as Image;label1.Size = img.Size; img.Dispose(); label跟pictureBox中均可使用. 由于窗体重绘会导致控件闪烁 方法一: /// <summary> /

禁止DataGridView控件中添加和删除行

实现效果: 知识运用: DataGridView控件的AllowUserToAddRows AllowUserDeleteRows和ReadOnly属性 实现代码: private void btn_no_Click(object sender, EventArgs e) { dataGridView1.AllowUserToAddRows = false; dataGridView1.AllowUserToDeleteRows = false; dataGridView1.ReadOnly =

C#之各类控件中输入、输出数据

本文重点讲的是:ComboBox.DateTimePicker.TextBox.RadioButton.DataGridView这五种控件的输入和输出. 一.控件数据的输入: (1)ComboBox控件中的下拉列表中,可以显示多项数据,使用ComboBox控件中的Items集合的Add方法向控件中添加数据.如下图: (2)DateTimePicker控件,一般用于让用户可以从日期列表中选择单个值.运行时,单击控件边上的下拉箭头,会显示两个部分:一个下拉列表,一个用于选择日期.如下图: (3)Te

Repeater控件中触发按钮事件出现System.ArgumentException: 回发或回调参数无效。在配置中使用 &lt; pages enableEventValidation=&quot;true&quot;/&gt;

今天,在Repeater控件中添加了一个按钮,可是在执行时确提示 System.ArgumentException: 回发或回调参数无效.在配置中使用 < pages enableEventValidation="true"/> <asp:Repeater ID="rpList" runat="server" OnItemCommand="rpList_ItemCommand"> <ItemTem

MFC中如何在TreeCtrl控件中获取鼠标左键消息时的有效点击位置

MFC中,当在TreeCtrl控件中添加鼠标左键消息时,就意味着,凡是在该控件中点击左键后即会响应鼠标左键的消息,可有时我们只想记下有效的鼠标左键点击的事件,如图所示: 只想在CheckBox中点击鼠标左键时,将已选中的Item的句柄存入到链表中,那么如何只将有效的鼠标左键的消息存入链表中呢? 下面是响应鼠标左键消息时从所有鼠标左键消息都响应到只响应有效的左键消息的三个版本: 当响应鼠标左键的消息时,第一个版本: 获取鼠标的点击位置(注意:此时获取的是针对于当前屏幕的鼠标点击位置,所以需要将其转

MFC中listbox控件中各种属性的详解

 ListBox控件是Windows 窗体的一个空间,ListBox 控件显示一个项列表,用户可从中选择一项或多项.      如果项总数超出可以显示的项数,则自动向 ListBox 控件添加滚动条.当 MultiColumn 属性设置为 true 时,列表框以多列形式显示项,并且会出现一个水平滚动条.当 MultiColumn 属性设置为 false 时,列表框以单列形式显示项,并且会出现一个垂直滚动条.当 ScrollAlwaysVisible 设置为 true 时,无论项数多少都将显示滚动

如何在各类控件中输入输出数据

如何在各类控件中输入输出数据 一.        ComboBox控件: 1.如图所示方法向ComboBox控件中添加下拉列表选项: 2.运用代码选择下拉框文本 if (comboBOx1.Text == "学号查询" ){ sql1 += " where StudentNo like  '%" + txtSearch.Text.Trim() + "%'"; sql = sql1;} else if (comboBOx1.Text == &quo