由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问问题C
相关主题
请问如何判断一个文件内容是UNICODE 还是 ANSI顺便问一个CreateFile问题 (转载)
关于C C++ 和java的文件读写问题[合集] ofstream 无法使用binary mode的问题
如何动态分配内存来存储输入的不定长的字符串,char not string类型的C#处理XML的问题
奇怪的问题:关于一个简单的malloc()小程序 (转载)Python里边file writer的问题
菜鸟请教C问题[合集] 忽然发现VC里同一线程的消息函数是无法调用另一个消息函数的...
关于buffer overflow请教一个系统安全问题
c字符串内存分配问题【求教】投票机编写的简单方法
copy_from_user() 是怎么知道缓存长度的? (转载)两个面世题
相关话题的讨论汇总
话题: hedit话题: buffer话题: 窗口话题: em
进入Programming版参与讨论
1 (共1页)
x******g
发帖数: 41
1
在主窗口里面生成的一个线程里面有个缓冲区的数据,
定义是 BYTE buffer[1024];
用SendMessage(hEdit,EM_REPLACESEL,FALSE, ((LPSTR)buffer));
希望能更新主窗口里面的句柄是hEdit控件的内容
结果是:主窗口的edit里面的内容是变了,但是是乱码
如果换成SendMessage(hEdit,EM_REPLACESEL,FALSE, TEXT("testmsg"));
就不是乱码
这个怎么解决啊?是在主窗口那边截获editupdate的消息,把buffer先处理成字符串再
更新edit么?
X****r
发帖数: 3557
2
你的程序的编译选的是用Unicode吧。Windows API里所有和字符串打交道的函数都
有两个版本,分别为后缀W和A,对应Wide character和ANSI字符串。编译的时候根
据你的编译选项就自动把你的函数替换成相应的版本。你这里直接把ANSI字符串作为
wide character传进去自然是乱码.你有没有想过这个TEXT()是作什么的?就是
给你自动转换用的(但是只限于字符串常量)。
你要手工转换的话,可以调用MultiByteToWideChar函数,或者简单地用wsprintf
的%S格式就会自动给你转换。

【在 x******g 的大作中提到】
: 在主窗口里面生成的一个线程里面有个缓冲区的数据,
: 定义是 BYTE buffer[1024];
: 用SendMessage(hEdit,EM_REPLACESEL,FALSE, ((LPSTR)buffer));
: 希望能更新主窗口里面的句柄是hEdit控件的内容
: 结果是:主窗口的edit里面的内容是变了,但是是乱码
: 如果换成SendMessage(hEdit,EM_REPLACESEL,FALSE, TEXT("testmsg"));
: 就不是乱码
: 这个怎么解决啊?是在主窗口那边截获editupdate的消息,把buffer先处理成字符串再
: 更新edit么?

x******g
发帖数: 41
3
原因看明白了,但是没看懂怎么用
是用MultiByteToWideChar或者wsprintf先buffer的内容转换成wide character,然后
再在SendMessage么?谢谢。

【在 X****r 的大作中提到】
: 你的程序的编译选的是用Unicode吧。Windows API里所有和字符串打交道的函数都
: 有两个版本,分别为后缀W和A,对应Wide character和ANSI字符串。编译的时候根
: 据你的编译选项就自动把你的函数替换成相应的版本。你这里直接把ANSI字符串作为
: wide character传进去自然是乱码.你有没有想过这个TEXT()是作什么的?就是
: 给你自动转换用的(但是只限于字符串常量)。
: 你要手工转换的话,可以调用MultiByteToWideChar函数,或者简单地用wsprintf
: 的%S格式就会自动给你转换。

x******g
发帖数: 41
4
啊,大侠,搞定了,太谢谢你了!
1 (共1页)
进入Programming版参与讨论
相关主题
两个面世题菜鸟请教C问题
面试关于buffer overflow
does the system guarantee this? (转载)c字符串内存分配问题
Linux Socket编程copy_from_user() 是怎么知道缓存长度的? (转载)
请问如何判断一个文件内容是UNICODE 还是 ANSI顺便问一个CreateFile问题 (转载)
关于C C++ 和java的文件读写问题[合集] ofstream 无法使用binary mode的问题
如何动态分配内存来存储输入的不定长的字符串,char not string类型的C#处理XML的问题
奇怪的问题:关于一个简单的malloc()小程序 (转载)Python里边file writer的问题
相关话题的讨论汇总
话题: hedit话题: buffer话题: 窗口话题: em