为什么没有定义_UNICODE也可以?该如何处理

为什么没有定义_UNICODE也可以?
我的vc6.0是中文版的,并没有定义_UNICODE,但是以下
TCHAR     strText[20]   = "为什么 ";
m_strTextCtrEdit.SetWindowText(strText);
照样能正常显示在编辑框里。为什么?

------解决方案--------------------
TCHAR并不是unicode,在支持unicode的情况下,它才是unicode
------解决方案--------------------
TCHAR 是双编译支持的,如果定义了_UNICODE,则展开为WCHAR,如果没有定义,则展开为CHAR.
------解决方案--------------------
显示没什么差别,只是字符的宽度上不一样
------解决方案--------------------
操作系统是中文的吧, 它安装有中文字库, 默认的语言也是中文.
------解决方案--------------------
回复人:wenbaby(雯贝贝) ( 三级(初级)) 信誉:100 2007-01-11 08:52:50 得分:0
?
TCHAR 是双编译支持的,如果定义了_UNICODE,则展开为WCHAR,如果没有定义,则展开为CHAR.

是正解。

另外,推荐使用unicode,提醒:要安装VC的UNICODE库(默认不安装),否则连接会出错。
------解决方案--------------------
这个我知道。
但是实际上程序中并没有定义_UNICODE,所以应该展开为CHAR。那为什么还能正常显示,而不是乱码?
___________
你说为什么要显示乱码?显示不显示乱码,跟UNICODE没有关系.
------解决方案--------------------
支持中文字符集编码,比如ANSI并不是unicode编码。
------解决方案--------------------
是因为你的操作系统支持简体中文编码,你换个其他语言的试试~~
------解决方案--------------------
因为你最终使用到的API也是ANSI的SetWindowTextA,而不是Unicode的SetWindowTextW