【急!!!】关于SetWindowText函数

kelanmn 2008-04-23 02:34:19
调用它的地方是:
CString strRecv = (char*)buf;
CString strOld;
pEdit->GetWindowText(strOld);
pEdit->SetWindowText(strOld +strRecv);
delete[] buf;
buf是含有3个字符的BYTE型数组指针,但是只是输出了它的第一个字符,怎样将它另外两个字符显示出来???每次调用SetWindowText时,会清空Edit框中的内容吗??
...全文
163 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kelanmn 2008-04-25
  • 打赏
  • 举报
回复
别沉了...求救啊,可以再加分...
kelanmn 2008-04-24
  • 打赏
  • 举报
回复
buf中的值是我自己输入的,这是个串口程序的一部分,是显示接收到的数据。三个值都是正常的啊
还有就是每次调用SetWindowText后,并没有清空数据,而是直接显示在已显示的后面
zaodt 2008-04-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 N_star 的回复:]
字符串是以"\0"结束的吧,楼上
我认为是不是你的BUF中的是乱码,根本无法显示啊
[/Quote]

这种可能性也是有的。后两个字符为不可见字符,所以看不到。


所以说,调试看一下 buf 中3个元素的值,一看便知。


另外,也不知道 buf 是不是UNICODE,这个要等楼主出来说了,我们在这里猜,也是瞎忙乎。
N_star 2008-04-23
  • 打赏
  • 举报
回复
字符串是以"\0"结束的吧,楼上
我认为是不是你的BUF中的是乱码,根本无法显示啊
zaodt 2008-04-23
  • 打赏
  • 举报
回复

CString strRecv = (char*)buf;


这句话,其实CString类会帮你转换,也可以改为如下:


CString strRecv = buf;

或者如下:

CString strRecv( buf );
zaodt 2008-04-23
  • 打赏
  • 举报
回复
每次调用SetWindowText时,会清空Edit框中的内容吗??


这个可以马上试出来。



调试,看看 buf 中3个元素的值。
vcPlayer 2008-04-23
  • 打赏
  • 举报
回复
可能你BUF中的第二个字节为"0"了. 这时ANSI字符串就自动截断,导致后面的显示不了.

解决: 把这个"0"用另一个字符来代替.
HeroAlur 2008-04-23
  • 打赏
  • 举报
回复
另外两个字符显示出来?你是不是想把他们连接起来,直接用c的字符串连接函数strcat就行
调用SetWindowText时,会清空Edit框中的内容,因为时覆盖
Ethan_yushui213 2008-04-23
  • 打赏
  • 举报
回复
BYTE型数组,所有数据都是可见字符么?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧