请问要怎么在_T()里面用变量
如 CString a="测试"
   myEdit.SetWindowTextW(_T(a));
这样的话编译报错说La无法识别?
请教高手?MFc第一次接触,望详细点,谢谢了

解决方案 »

  1.   

    _T是为了兼容UNICODE和ANSI时对字符常量定义时加的宏,根本就不可能出现要在_T里面加变量的情况。
      

  2.   

    你在定义字符串变量时定义成TCHAR就行了。
      

  3.   

    _T() 里面不能是变量的,只能是常量。
    楼主可以这样用:
    myEdit.SetWindowTextW(_T("测试"));
      

  4.   

    还有个问题要问,如果要从txt读数据,然后进行筛选,提取要的字符串,再显示到edit 控件上,请问需要哪些类型的变量,还有什么函数,望详细,mfc刚接触,c++也不怎么会。望帮助!
      

  5.   

    还有个问题要问,如果要从txt读数据,然后进行筛选,提取要的字符串,再显示到edit 控件上,请问需要哪些类型的变量,还有什么函数,望详细,mfc刚接触,c++也不怎么会。望帮助!
      

  6.   

    CString a(_T"测试");
    myEdit.SetWindowTextW(a);你都用MFC了,直接用CString就是了
      

  7.   

    CString a(_T"测试");
    myEdit.SetWindowText(a);你都用MFC了,直接用CString就是了
      

  8.   

    又打错了
    CString a(_T("测试"));
    myEdit.SetWindowText(a);
      

  9.   

    我是楼上的马甲,楼上错了, 纠正:
    CString a(_T("测试"));
    myEdit.SetWindowText(&a);
      

  10.   

    MSDN这样说的:
    SetWindowText的参数用CString的指针应该可以吧,可能要加个强制转换类型
      

  11.   

    变量用CString就行了。至于函数不好说,显示到EDIT上用SetDlgItemText或是SetWindowText都行,筛选就要看你要达到的效果了。
      

  12.   

    CString a="测试"
      myEdit.SetWindowTextW(_T(a));_T  要的类型是  char *  或者 wchar_t*   ; a 的 类型 是CString 
    除非 CString 能够自动转换为 char* 或 wchar_t * 否则不能直接这样   (运算符 转换重载)另外 _T 依赖于编程环境的定义 ,如果是ascii的 则_T 的参数为 char *;
     unicode 环境的为wchar_t * 上述 的 SetWindowTextW  应该是 使用unicode字符集的 ,使用_T 出错的原因 可能是 编程环境使用 ascii个人觉得 如果是字符串处理的话,不要笼统的使用 TCHAR 之类的, 当然这样会容易一点点而已,但麻烦也多,正如上面的 不能确定字符集而导致的错误 、字符长度计算 ,不同字符集的转换
    应该使用单一一种字符集,推荐是unicode字符集,虽然内存占用大一点