我编写了一个对话框,让用户输入姓名和年龄(用文本框输入),要求两项都不能
为空,因此在用户输入时要检查是否为空,我用
 GetDlgItemText(IDC_EDIT1,name)顺利得到了用户输入的姓名,但用
 GetDlgItemText(IDC_EDIT2,age) 得到age时编译出错,原因是在对话框中定义age
为int,我查了MSDN该函数格式如下,好象可以有三个参数:
UINT GetDlgItemText( int nID, LPTSTR lpStr, int nMaxCount ) const;
BOOL GetDlgItemText( int nID, BSTR& bstrText ) const;
 但LPTSTR lpStr为什么呢?这个函数能解决我的问题吗?怎么解决?
 若不行的话有别的什么办法解决吗?
   新手上路,请多关照!

解决方案 »

  1.   

    LPTSTR就是一个TCHAR* 如果你没定义UNICODE 那就是一个char *
    GetDlgItemText把edit控件上的东东赋给一个字符串
    如果你要判断你的age 可以用一个CString类型的临时变量来判断
    CString strTmp;
    GetDlgItemText(IDC_EDIT2,strTmp);
    if (0==strTmp.Compare("")) {
         // age 为空
    }
    else {
        age=atoi(strTmp);
    }
    前提是你要保证edit2的用户输入是一个整数 如果你已经绑定了一个整数成员变量那mfc自动为你做了这个工作
      

  2.   

    cy214(threadx)说的很清楚了,一般这种问题都是现取到字符串后转化的