请教一个用串口读取单片机消息在Edit控件中汉字显示不正常的问题
最近在做一个单片机调试程序,环境是VS2008,用的MSCOMM控件,三个edit,一个发送mEditSend,一个接收只读mEditRcv,另一个显示发送的历史记录只读mEditHsty,现在问题是接收区无法正常显示单片机发回来的中文字符,但发送区和历史记录中可以正常编辑显示汉字

用串口调试助手能正常接收显示单片机发来的中文字符,说明单片机上传的内容是正确的

用16进制查看单片机上传的字符串就是这一段:
6D 6F 74 6F 72 20 74 65 73 74 20 77 69 74 68 20 4C 0A 2F 2F 2F 41 47 43 3A 20 31 37 30 0A 0A CA E4 C8 EB D6 B8 C1 EE 3A 0A
在监视器中跟踪变量,接收到的是正确的,中文都能显示出来,


可最后显示在Edit中就是这么个鸟样了

收发操作的函数代码见下:
同编译器设置有关么,因为自动生成的代码老有这么一段

一直做的是单片机开发,VC各种控件特性还不太了解,还请各位高手给分析分析这是什么情况。
谢谢大家了

用串口调试助手能正常接收显示单片机发来的中文字符,说明单片机上传的内容是正确的

用16进制查看单片机上传的字符串就是这一段:
6D 6F 74 6F 72 20 74 65 73 74 20 77 69 74 68 20 4C 0A 2F 2F 2F 41 47 43 3A 20 31 37 30 0A 0A CA E4 C8 EB D6 B8 C1 EE 3A 0A
在监视器中跟踪变量,接收到的是正确的,中文都能显示出来,


可最后显示在Edit中就是这么个鸟样了

收发操作的函数代码见下:
void CSatCtrlComDlg::OnBnClickedButton2() //发送数据 并将发送历史在对话框中显示
{
VARIANT str;
UpdateData(true);
str = COleVariant(mEditSend);
cMSCommPort.put_Output(str);
mEditHsty += str;
mEditHsty += "\r\n";
UpdateData(false);
int linecnt = cEditHsty.GetLineCount();
cEditHsty.LineScroll(linecnt-1,0);
}
BEGIN_EVENTSINK_MAP(CSatCtrlComDlg, CDialog)
ON_EVENT(CSatCtrlComDlg, IDC_MSCOMM1, 1, CSatCtrlComDlg::OnCommMscomm1, VTS_NONE)
END_EVENTSINK_MAP()
void CSatCtrlComDlg::OnCommMscomm1() //串口有接收时显示在接收区
{
if(cMSCommPort.get_CommEvent()==2)
{
char str[1024] = {0};
long k;
VARIANT InputData = cMSCommPort.get_Input();
COleSafeArray fs;
fs = InputData;
for(k=0;k<fs.GetOneDimSize();k++)
{
fs.GetElement(&k,str+k);
}
mEditRcv += str;
UpdateData(false);
int linecnt = cEditRcv.GetLineCount();
cEditRcv.LineScroll(linecnt-1,0);
}
}
同编译器设置有关么,因为自动生成的代码老有这么一段

一直做的是单片机开发,VC各种控件特性还不太了解,还请各位高手给分析分析这是什么情况。
谢谢大家了
...全文
相关推荐
MFC实现获取Edit控件内容写入本地TXT文件
在catch块中,我们可以显示一个错误消息框,告诉用户发生了什么问题。
VS2013基于对话框的MFC串口通信简单案例教程
本例程是在VS2013环境下,使用MFC做的是一个简单的串口通信程序。 虚拟的串口软件工具下载地址:https://pan.baidu.com/s/1D-oddZk3Z_ioXBUpXE7ksw 密码:s84c 1、创建基于对话框的MFC应用程序 2、点资源视图,为对话框添加所需要的控件 a、 在资源视图的资源树中双击Dialog下的IDD_SERIALTEST_D...
VC控件MSComm编写串口通信程序(转)
在众多网友的支持下,串口调试助手从2001年5月21日发布至今,短短一个月,在全国各地累计下载量近5000人次,在近200多个电子邮件中,20多人提供了使用测试意见,更有50多位朋友提出要串口调试助手的源代码,为了答谢谢朋友们的支持,公开推出我最初用VC控件MSComm编写串口通
MFC Edit控件之enter回车捕捉
#### 五、总结通过上述步骤,我们实现了在MFC中对Edit控件中Enter键的捕捉,并能将输入内容自动复制到另一个控件中。这种方法不仅可以提高程序的可用性,还能增强用户的使用体验。
VC++改变编辑框Edit控件的颜色
**注意**: - 确保你的类正确继承了消息映射并实现了消息处理函数。 - WM_CTLCOLOREDIT消息可能不适用于所有类型的窗口,特别是对于具有自绘能力的控件。


界面
