VC进行串口编程并在不同编辑框中显示。急!急!急!在线等
void CSCommTest1Dlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];
CString strtemp;
staticunsigned int Receive_flag;
Receive_flag=0;
if(m_ctrlComm.GetCommEvent()==2)
{
variant_inp=m_ctrlComm.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);
for(k=0;k<len;k++)
{
BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%c",bt);
switch(Receive_flag)
{
case 0: m_strEditRXData+=strtemp; break;
case 1:m_strEdit1RXData +=strtemp;break;
case 2: m_strEdit2RXData+=strtemp; break;
}
Receive_flag++;
if( 2 ==Receive_flag)
{
Receive_flag=0;
}
}
}
UpdateData(FALSE);
}
这是我的代码,我想让第一个数据进来第一个编辑框接受,第二个数据进来第二个编辑框接受,以此类推。为什么不可以
[解决办法]
if( 3 ==Receive_flag)
[解决办法]
怎么个不可以?三个编辑框都没有数据?
[解决办法]
关联编辑框控件变量 然后调用SetWindowText
[解决办法]
怀疑:
len=safearray_inp.GetOneDimSize(); 执行后
len的值是1?