主对话框函数
if(b_RdSysID == 1)
{
KillTimer(1);
b_RdSysID = 0;
CColDatadlg *pDlg = (CColDatadlg*)AfxGetMainWnd();
pDlg ->ReadSysID();
}
当前对话框函数
void CColDatadlg::ReadSysID()
{
CString szStr,szTemp;//(RecBuf);
CString pPhoneNum =new CString((char)RecBuf, 22); //将byte数组转换成cstring
szStr = *pPhoneNum;
szTemp = szStr.Right(19);
szTemp = szStr.Right(19);
MessageBox(szTemp);//此处szTemp有值显示
m_EditSysID = szTemp; //都是CString ,这里报错
// GetDlgItem(IDC_EditSystemID)->SetWindowText(szTemp);//试过没用
SetDlgItemText(IDC_EditSystemID,szTemp);//给EDIT值,EDIT仍没变化为空
UpdateData(false);
}
先检查一下edit绑定的变量类型是否正确,有可能设为了int;还有就是调用SetDlgItemText(IDC_EditSystemID,szTemp); 要保证控件IDC_EditSystemID必须在 当前对话框里才能成功,否则需要在前面加上IDC_EditSystemID所在对话框的句柄。 你可以看看SetDlgItemText的返回值是否为0,如果不是则调用getlasterror来看是什么问题造成的。既然edit控件绑定了变量 你应该直接给这个变量赋值然后调用updadatate进行显示
感觉变量m_EditSysID是int型的,都是CString怎么可能报错,报的什么错?