解决方案 »
- WM_POWERBROADCAST如何判读系统是进入sleep还是Hibernate??
- 求ODBC建立数据库与VC++联接的过程,新手!!!感激不尽!
- VC中怎么对时间进行比较?
- 如何将C++源码中的函数编译成支持COM接口的DLL组件供其它语言调用????
- 有关windows程序设计中的return和break语句的迷茫.
- 如何录下电脑当前放出的所有声音?
- 100分求助!谁有InstallShield 6.3版本的password!
- 求教,VS2008 MFC基础问题
- 怎么设定socket发送是阻塞的还是非阻塞的?
- 我编了一个dll,没有用mfc向导,是不是只要把每个函数前加一个WINAPI就可以被vb和delphi调用了呢?如果不行,还因该怎么办???
- DrawTextEx放在按钮函数有效,在OnInitDialog就没显示
- iocp接收文件,每次GetQueuedCompletionStatus每次接收一定的数据,这里应该怎么处理呢?
完全可以让一个看起来Ansi的程序可以处理Unicode字符
记事本识别文件是否Unicode是用的BOM文件头。
edit控件本身内部两种编码如何处理就不太清楚了(是各管各 或者 统一为Unicode)。
{
WPARAM a;
a = ( unsigned char )e;
a <<= 8;
a += ( unsigned char )t;
// 汉字
::SendMessage( hwnd, WM_CHAR, ( WPARAM )a, 0x00000001 );
i++;
}
a是汉字的ansi码而俺的unicode工程是这样的
::SendMessage( hwnd, WM_KEYDOWN, ( WPARAM )( t ), 0x001f0001 );
::SendMessage( hwnd, WM_CHAR, ( WPARAM )( t ), 0x001f0001 );
::SendMessage( hwnd, WM_KEYUP, ( WPARAM )( t ), 0xc01f0001 );
t是字符的utf16码,中英文通用。
得由输入法本身来决定是发送什么字符。我终于明白这一点了。输入法中有一个输入上下文,输入上下文是一个数据结构,其中有应用程序窗口句柄。看来是这样的:如果你这个输入法是unicode的,那应用程序的窗口就会是unicode的,如果相反则它也相反。可是又有一个问题来了:假如有一个人,编写了一个应用程序,是纯Ansi的,而输入法则是unicode的,则会发生什么事情?
目标工程:unicode 的edit
输入工程:ansi,输入汉字时发送汉字的gb编码。
输入工程:unicode,输入汉字时发送汉字的utf16编码。