你很走运,我刚作完一个这方面的代码。是CRichEditCtrl的,在CEDIT上肯定也能运行。
有三种方法,包括数值或数值数组如何在EDIT中显示以及字符串或字符数组如何在EDIT中显示:
1。把RichEditCtrl加入对话框中然后在CALSSWIZADD中为该控件加上字符串变量“m_strRichEdit”,然后在相应位置加入下面代码:
LPTSTR strBufferRichEdit = m_strRichEdit.GetBuffer(Length); //给字符串分配缓存,并返回指向该缓存的指针
for(iLoop = 0;iLoop < m_lTwoSeriesThreeNumberLength;iLoop++)
{
    iBufferLength += sprintf( strBufferRichEdit + iBufferLength,
                 "%.2d ",m_pLotteryAllArrayBuf[iLoop]);
    }
}
如果你想把数值形数组中的值变成字符串的形式读到EDIT中。就用上面的方法。这中方法的好处是可以对数值数组中的值进行各种格式化的修改。
2.把RichEditCtrl加入对话框中然后在CALSSWIZADD中为该控件加上整形变量“m_iRichEdit”,然后在相应位置加入下面代码:
m_iRichEdit = i;
就用上面的方法。这中方法的好处是可以简单直接,但无法对数值进行各种格式化的修改。
3.如果想把字符串strBuffer或字符串数组char Buffer[***];中的字符显示在EDIT当中,可以直接用
strBufferRichEdit = strBuffer; or strBufferRichEdit = Buffer;最后都别忘了加UpdateData(FALSE);

解决方案 »

  1.   

    不用那么复杂吧,很简单了,给你的CEdit控件加一个成员变量m_edit,字符型的用CString,数字用int WORD什么的,然后再你需要的地方updatedata(TRUE),m_edit的值就是edit控件中显示的值了。
      

  2.   

    说来简单 就是 按照sunriselx 所说的 但是我在作的时候发现 用getwidowtext()取字符时候很不稳定又是能取有时候又不行 真是琢磨不透。我很关注这个事情,因为我要从对话框上的cedit空间里取串阿
      

  3.   

    to reeching(清亦非):
    估计你是不是没有把updatedata用好?什么时候FALSE 什么时候TRUE.这可得搞清出.
    to sunriselx():
    你的方法就是我的方法没错,但是没有办法定制数值的格式.而且当数组的长度很大时,你的方法将会影响速度.我刚试过的.对付一个上千万长度的整数数组要想从新对它进行相应的字符格式化转换.第三中方法耗时45秒,而第一种方法只需5秒.
      

  4.   

    to hawk_yan():
        可以定制数值的格式吧,控件的properties里面可以设呀,再说给控件添加成员变量时也可以选数据类型的CString int float WORD....都行的。
      

  5.   

    你没有明白我的意思。我说的定制数值的格式不是你理解的哪个意思。
    下面举例说明:
    假设一个数组array[]={1,2,3,4,5,6,7,8,9,.....10000000};
    现在我要把这个数组以每个数八位格式的形式用字符串显示在编辑框中,并且字符串之间要有一个空格。即显示在编辑框中为如下形式:
    00000001 00000002 00000003 00000004 00000005 00000006 00000007 00000008 
    00000009 00000010 00000011 00000012 00000013 00000014 00000015 00000016 
    00000017 00000018 00000019 00000020 00000021 00000022 00000023 00000024 
    .................
    .................
    .................
    ............................................ 09999998 09999999 10000000这时候你肯定不能把控件定义成数值变量,而只能定义为字符串。然后用sprintf进行转换。
    当然这其中具体实现有两种方法。一种就是如下:
    for(iLoop = 0;iLoop < 10000000;iLoop++)
    {
        iBufferLength += sprintf( strBufferRichEdit + iBufferLength,
                                  "%.8d ",Array[iLoop]);
    }另一种就是:
    LPTSTR strBufferRichEdit = m_strRichEdit.GetBuffer(10000000*9);    //给字符串分配缓存,并返回指向该缓存的指针
    for(iLoop = 0;iLoop < 10000000;iLoop++)
    {
        iBufferLength += sprintf( strBufferRichEdit + iBufferLength,
                                  "%.8d ",Array[iLoop]);
    }
    第一种代码比较简捷。但当数组很长时(如上面的数组一样),第二种预先动态分配内存的方法将会大幅度提高运行速度。
      

  6.   

    我觉得就用类向导生成一个cedit的control对象,比如起一个名字叫c_getstr.
    然后用它的成员函数getwindowtext就可以了.并不需要使用GetDlgItem 和 Updatedata之类的函数,而且好象也还没有出过什么问题.
    最重要的是,在类向导中可以使用cedit的派生类去实现该对象,很方便的.