MFC中数据交换问题

来源:互联网 发布:清除僵尸粉软件 编辑:程序博客网 时间:2024/06/08 09:27

        在MFC中实现数据交互,这不得不提关于DDX_Text和DDX_Control的用法,也就是定义的控件变量有Control和Value之分,二者的共同点都是捆绑定义的控件变量,实现数据交换;不同点是DDX_Text定义的变量是控件的值,而DDX_Contro定义的变量是控件本身。个人认为如果想实现控件框中值变化,就选用DDX_Text,定义控件变量为Value类型,如果想实现控件变灰失效,则选择DDX_Control,定义控件变量Control类型。

    关于二者的区别,建议动手操作一遍就清楚了,首先在界面中,拖放几个EDIt控件,编辑好其ID号,然后可以通过类向导定义控件变量,会在头文件自动生成变量的定义;

CEdit   m_WidthCon1;

int   m_Width;

DDX_Control(pDX, IDC_EDIT_Width, m_WidthCon1);//把变量和控件本身关联起来


DDX_Text(pDX, IDC_EDIT_Width, m_Width); //把字符串变量和控件的文本关联起来


如果想让变量更新到控件框中,则选择用UpdateData()函数;

UpdateData(FALSE);//从变量的值更新到控件;

UpdateData(TRUE);//将控件中编辑的内容更新到变量;


如果想让控件变灰失效,此时定义的CEdit  m_WidthCon1变量就可以用上了,这个变量m_WidthCon1就代表控件本身;

m_WidthCon1.EableWindow(false);//使控件变灰失效;


0 0
原创粉丝点击