关于MFC编辑框显示字符的问题
大家好,我是个菜鸟,刚接触VC不久,最近在调试一个基于VC的测井系统,其中有个问题一直在困惑着小弟,还请大神不吝赐教!我先把现实的界面截上来:

大家可以看到,预想的情况是:当我点击启动按钮时,在“压力采样”和“温度采样”中就会不断的出现采样值显示,其中数据是由USB接口传输的。关于接收部分的代码如下:
上述代码的主要意思是:(设置了一个2号定时器500ms)当定时器到时便使用DeviceRead函数获得5个字节的数据,根据第二个字节的内容分析是压力采样帧还是温度采样帧并相应显示,最后再使用DeviceWrite函数发送对应的命令帧要求下位机提供采样值。具体的自定义函数我就不细讲了,总之在设置断点调试时每次进入上述定时器响应函数时都可以获得合理的采样值。
但是问题就在于,当全速运行时,编辑框内的数据显示就有问题了,压力采样的数据跳变了三次后就一直为零了,温度采样值则是显示了一个数据后就再也没变过了,这与断点调试的结果大相径庭。然后我再次调试,发现即使在数据查看窗口中获得了合理的数据,但是显示的压力一直为零,温度值也不变。而且还有一个问题是,每次运行编辑框内显示的数据变化过程都是一样的,这根本不符合采样的原理啊!!!
依小弟粗见,这里显示的部分(SetWindowText附近)应该是有问题,具体是什么问题我也不知道啊,在此求助大神看看,有叙述不清楚的地方请尽管问小弟,谢谢了!
(啊!!打字好辛苦啊)

大家可以看到,预想的情况是:当我点击启动按钮时,在“压力采样”和“温度采样”中就会不断的出现采样值显示,其中数据是由USB接口传输的。关于接收部分的代码如下:
void CCalDlg::OnTimer(UINT nIDEvent)
{
//SYSTEMTIME st1,st2;
// GetLocalTime(&st1);
switch(nIDEvent)
{
case 2:
{
DWORD dwBytesWritten=0;
DWORD dwBytesRead=0;
long m_nPAv = 0;
long m_nTAv = 0;
CString str;
BYTE msg[5];
DeviceRead( msg, 5, &dwBytesRead, 1000);
if(msg[1]==(BYTE)0x51)
{
m_nPAv = (long)msg[2] * 256 + (long)msg[3];
str.Format("%d",m_nPAv);
GetDlgItem(IDC_ED_P_AV)->SetWindowText(str);
msg[0] = 0x63;
msg[1] = 0x52;
msg[2] = 0xda;
msg[3] = 0xda;
msg[4] = 0x69;
DeviceWrite( msg, 5, &dwBytesWritten, 1000);
//GPutACOM((BYTE)0x52); //要求下一次传送温度
}
else if(msg[1]==(BYTE)0x52)
{
m_nTAv = (long)msg[1] * 256 + (long)msg[2];
m_nTAv = m_nTAv/4;
str.Format("%d",m_nTAv);
GetDlgItem(IDC_ED_T_AV)->SetWindowText(str);
msg[0] = 0x63;
msg[1] = 0x51;
msg[2] = 0xda;
msg[3] = 0xda;
msg[4] = 0x68;
DeviceWrite( msg, 5, &dwBytesWritten, 1000);
//GPutACOM((BYTE)0x52); //要求下一次传送温度
}
break;
}
default:break;
}
//GetLocalTime(&st2);
//BYTE msg[5];
}上述代码的主要意思是:(设置了一个2号定时器500ms)当定时器到时便使用DeviceRead函数获得5个字节的数据,根据第二个字节的内容分析是压力采样帧还是温度采样帧并相应显示,最后再使用DeviceWrite函数发送对应的命令帧要求下位机提供采样值。具体的自定义函数我就不细讲了,总之在设置断点调试时每次进入上述定时器响应函数时都可以获得合理的采样值。
但是问题就在于,当全速运行时,编辑框内的数据显示就有问题了,压力采样的数据跳变了三次后就一直为零了,温度采样值则是显示了一个数据后就再也没变过了,这与断点调试的结果大相径庭。然后我再次调试,发现即使在数据查看窗口中获得了合理的数据,但是显示的压力一直为零,温度值也不变。而且还有一个问题是,每次运行编辑框内显示的数据变化过程都是一样的,这根本不符合采样的原理啊!!!
依小弟粗见,这里显示的部分(SetWindowText附近)应该是有问题,具体是什么问题我也不知道啊,在此求助大神看看,有叙述不清楚的地方请尽管问小弟,谢谢了!
(啊!!打字好辛苦啊)
...全文
相关推荐
mfc中读取编辑框数据并保存
mfc中读取编辑框数据并保存在TXT文档中
MFC控件之编辑框CEdit
028MFC控件之编辑框CEdit,MFC的编辑框及平时用的输入框,可以往里面输入文本或数字,编辑框对应的MFC类为CEdit,CEdit提供了窗口编辑框的功能
用MFC实现在编辑框中打开TXT文件
用MFC实现在编辑框中打开TXT文件,用于初学者。
MFC编辑框控件背景 边框 颜色 文字 属性修改
扩展MFC编辑框控件的功能,修改编辑框背景颜色,文字格式,以及边框颜色等
MFC对话框中编辑框字体大小与颜色的设置(VS2005)
主要内容:1.MFC对话框中编辑框字体大小与颜色的设置;2.List control控件的使用实例代码;3.VS2005编写。


