获取一个EDIT控件的值
UINT  BackCityDlg::GetRedNum()
{
GetDlgItem(IDC_EDIT1)->GetWindowText(m_cst_redNum);
         UINT rednum = _wtoi(m_csedit_rednum.GetBuffer());
return rednum;
}我单独调用这个方法是可以获取值的,但是当我在一个timer里调用的时候为什么就不行了呢?
写工程都两天都没怎么合眼了,第一次碰到这种问题。
我不明白,请告诉我一下,谢谢。

解决方案 »

  1.   

    没有理由啊
    在timer里怎么个不行法
      

  2.   

    timer里面有没有跑到啊? 
      

  3.   

    定时器是不是也是在这个类中啊,如果不在BackCityDlg类中估计GetDlgItem(IDC_EDIT1)->GetWindowText(m_cst_redNum);不一定能成功
      

  4.   

    GetDlgItem(IDC_EDIT1)->GetWindowText(m_cst_redNum);
      UINT rednum = _wtoi(m_csedit_rednum.GetBuffer());
    return rednum;---》//GetBuffer要记得释放,但这里不需要
    GetDlgItem(IDC_EDIT1)->GetWindowText(m_cst_redNum);
      UINT rednum = _wtoi(m_cst_redNum);
    return rednum;
      

  5.   

    我也真的很想知道到底出问题了,一夜都没睡觉。我点一个BUTTON测试这个方法是绝对可以的,
    而且用timer调用也确实执行了,一模一样的方法为什么仅仅是调用方法位置的不同会出现如此的差异呢? 再说一个获取控件的方法在程序的任何位置都是可以的啊。 那个m_cst_redNum是一个CString类型的edit控件变量,不可能出现问题的,
    到底是为什么呢?
      

  6.   


     额,可能真是这个问题,我是在主程序的领空设置的timer,那该如何解决呢?
      

  7.   

    额,可能真是这个问题,我是在主程序的领空设置的timer,那该如何解决呢?
    =====================
    你在主程序中用定时器,那么GetDlgItem(IDC_EDIT1)->GetWindowText(m_cst_redNum);所取的就是在主程序中的控件IDC_EDIT1,你主程序中应该没有这个控件吧。
    一种方法是将定时器改到IDC_EDIT1控件所在的类中。
    另一种是先取得BackCityDlg类的指针,假设为pDlg;然后写作:pDlg->GetDlgItem(....);
      

  8.   

    timer是一个脚本类,不是窗口类,所以控件的位置无法变动。
    当我用类指针后竟然无论是窗口类还是脚本类里都无法获取值了,兔兔们快来救急。。
      

  9.   

    你的脚本类是是个啥?能处理WM_TIMER消息???还是什么的?
      

  10.   

    不能处理。不是窗口类怎么处理。。
    就是纯CPP文件,这个类里面写的脚本流程。
     怎么办呢。我实在是不知道怎么弄了
      

  11.   

    可能是我表达有些问题吧。
    关键就是在A类中调用B类中获取控件值的函数,
    A类是我从以前写的工程中复制过来添加到现在工程里面的,B类是一个窗口类。
    这样算明白了吗?