LZ需要使用定时器来看到这样的效果,
CPU的效率很高,计算速度很快,但刷新速度就比较慢了,导致没有看清,就变成65534了,如果真的需要显示这样的效果,建议使用定时器,而不是这样直接处理。
另外,最好不要使用sleep(),这可能是程序假死,导致刷新还是这样。

解决方案 »

  1.   

    上面的代码只是一个简单便于理解的例子而已,我在很多情况下都会碰到不能实时更新控件的情况。
    在上边的代码中,我在for循环的每个单循环中加入一个延时"for(int j=0;j<65535;j++);",即
    void  CMy2Dlg::OnButton1()    
    {  
               int  i;  
               CString  my_s;  
               for(i=0;i<65535;i++)  
               {  
                           my_s.Format("%d",i);  
                           m_2  =  my_s;  
                           UpdateData(FALSE);
                           for(int j=0;j<65535;j++); //加入延时
               }  
    }  
    发现还是一样,界面死掉一段时间之后EditBox突然显示65534。
      

  2.   

    void CMy2Dlg::OnButton1() 
    {
    int i;
    CString my_s;
    for(i=0;i<65535;i++)
    {
    my_s.Format("%d",i);
    m_2 = my_s;
    UpdateData(FALSE);
    GetDlgItem(IDC_EDIT1)->RedrawWindow();
    }
    }