DDX_Text进行跟编辑框控件交互时只读取了数据字段的第一个字节
我用MFC进行OLE DB数据库编程,我选择了支持数据源,然后选了OLE DB,然后选了Access数据库表course表,里面有字段code是文本类型的,规定了字段大小为5;还有个数字型的字段叫credit,为单精度,小数位为1;
再加进两个编辑框控件:IDC_CODE和IDC_CREDIT
我在CXXView::DoDataExchange函数里写了:DDX_Text(pDX,IDC_CODE,(char*)m_pSet->m_code,5);
和DDX_Text(pDX,IDC_CREDIT,(char*)m_pSet->m_credit,10);
可运行时为什么只读出了两个字段里的头一个字节?
比如:
code   credit
123     abc
运行时显示在编辑框里的是:IDC_CODE里显示了:1  而IDC_CREDIT里显示了:a
而不是123 abc
这是为什么

解决方案 »

  1.   

    你需要手动分配内存:
    在CXXView::DoDataExchange函数里写了:m_pSet->m_code.GetBuffer(5);
    DDX_Text(pDX,IDC_CODE,(char*)m_pSet->m_code,5);
    m_pSet->m_code.ReleaseBuffer(5);下面同理
    DDX_Text(pDX,IDC_CREDIT,(char*)m_pSet->m_credit,10);
      

  2.   

    你当前的工程是什么编码?m_pSet->m_code;这里的m_code又是什么类型?CString ?
      

  3.   

    你按我的步骤建立工程,帮我看下是怎么回事,m_code的类型不用问都知道是wchar_t了,我已经说得很清楚了
      

  4.   

    你这个m_pSet->m_code.GetBuffer是分配内存的?