WTL中的数据交换(DDX)

        WTL的DDX(对话框数据交换)很像MFC,可以使用很简单的方法将变量和控件关联起来。

        DDX是用来做数据交换的,WTL支持在Edit控件和字符串之间交换数据,也可以将字符串解析成数字,转换成整型或浮点型变量,还支持Check Box和Radio Button组的状态与int型变量之间的转换。DDX可以使用6种宏,每一种宏都对应一个CWinDataExchange类的方法支持其工作,每一种宏都用相同的形式:DDX_FOO(控件ID, 变量),每一种宏都可以支持多种类型的变量,例如DDX_TEXT的重载就支持多种类型的数据。       

        DDX_TEXT 
在字符串和edit box控件之间传输数据,变量类型可以是CString, BSTR, CComBSTR或者静态分配的字符串数组,但是不能使用new动态分配的数组。 
        DDX_INT 
在edit box控件和数字变量之间传输int型数据。 
        DDX_UINT 
在edit box控件和数字变量之间传输无符号int型数据。 
        DDX_FLOAT 
在edit box控件和数字变量之间传输浮点型(float)数据或双精度型数据(double)。 
        DDX_CHECK 
在check box控件和int型变量之间转换check box控件的状态。 
        DDX_RADIO 

             在radio buttons控件组和int型变量之间转换radio buttons控件组的状态。

DoDataExchange()方法

        数据间的传递需要调用DoDataExchange()方法和在MFC中使用UpdateData()一样,DoDataExchange()的函数原型是:

        BOOL DoDataExchange ( BOOL bSaveAndValidate = FALSE, UINT nCtlID = (UINT)-1 );

        参数:

       bSaveAndValidate

指示数据传输方向的标志。TRUE表示将数据从控件传输给变量,FALSE表示将数据从变量传输给控件。需要注意得是这个参数的默认值是FALSE,而MFC的UpdateData()函数的默认值是TRUE。为了方便记忆,你可以使用DDX_SAVE 和 DDX_LOAD标号(它们分别被定义为TRUE和FALSE)。
      nCtlID
使用-1可以更新所有控件,如果只想DDX宏作用于一个控件就使用控件的ID。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值