以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  setwindowtext显示异常,求教达人  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=46814)


--  作者:zhoudavid
--  发布时间:5/13/2007 12:08:00 PM

--  setwindowtext显示异常,求教达人
写了个计算器的小程序,先把算好或者输入的数setwindowtext到编辑框中,但是出问题了 ,描述如下:
1.setwindowtext(hwnd,L"XX");可以正确set
2.我将编辑框中的内容设了个char*变量text,当setwindowtext(hwnd,(LPCWSTR)text),显示就是一个方框,没有预期的字符
3.将text作过些数据类型转换的实验,发现TCHAR*可用(但TCHAR不支持atof,strcat等函数,所以不可用)。于是考虑,是不是预编译MBCS和UNICODE的问题...
4.代码中没有#define _UNICODE 和#define UNICODE
5.由于是嵌入式程序,使用platform builder集成开发环境(不知道预编译选项在哪,不知道那里会不会有_UNICODE)
6.也考虑过使用TCHAR,但TCHAR仍需与char互相转换(不会)

求教达人,以上是我对这个问题的全部思考,如果还有其他路可走,请赐教,如果思考还不够深入,也请赐教

再拜达人!!(50分)


--  作者:卷积内核
--  发布时间:5/14/2007 9:40:00 AM

--  

TCHAR仍需与char互相转换(不会)

typedef char TCHAR, *PTCHAR;//VC里面的定义


--  作者:zhoudavid
--  发布时间:5/14/2007 6:09:00 PM

--  
又作了点试验,果然是采用UNICODE预编译,char全部改为wchar_t及相关函数,显示正确了(但是仍不知道platform builder的预编译设置在哪..)另外,请问达人,在嵌入式环境下,有没有与atof一样功能的、适用于wchar_t的函数?(已经查过,没有_wtof)

求教达人,再拜~~


--  作者:一分之千
--  发布时间:5/18/2007 9:40:00 AM

--  
你说的编译环境没有用过,所以不知道该怎么办,但实在vc环境下的话这个应该是很容易实现的,以下代码vc6下编译通过
void CTest2Dlg::OnPaint()
{
。。。。。
。。
 else
 {
  CDialog::OnPaint();

  char *temp=new char;

  *temp='a';

  CEdit edit1;
  GetDlgItem(IDC_EDIT1)->SetWindowText(temp);
 }
}


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
359.375ms