首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

【求教】MFC中将多个数组赋值到一个EDIT BOX中解决方案

2013-04-20 
【求教】MFC中将多个数组赋值到一个EDIT BOX中中间有5个数组ximage[6],yimage[6],X[6],Y[6],Z[6],都要赋值到

【求教】MFC中将多个数组赋值到一个EDIT BOX中
中间有5个数组ximage[6],yimage[6],X[6],Y[6],Z[6],都要赋值到IDC_CONTROLPOINT这个多行EDIT BOX里面,但是我这样赋值负数无法显示全是乱码,不知道要怎么修改
另外,总是会出现警告说DOUBLE转CHAR,我之前明明用FORMAT进行转换了啊?这是什么问题


void CModalDlg::OnRead() 
{
// TODO: Add your control notification handler code here
CFileDialog fileDlg(TRUE);
double x0,y0,f0,m,H,number;
int i;
double ximage[6],yimage[6],X[6],Y[6],Z[6];
if(fileDlg.DoModal() == IDOK)
{
CString str = fileDlg.GetPathName();
FILE* pfile = fopen( str, "rt" ); 
fscanf(pfile, "%lf", &x0);
fscanf(pfile, "%lf", &y0);
fscanf(pfile, "%lf", &f0);
fscanf(pfile, "%lf", &m);
fscanf(pfile, "%lf", &H);
fscanf(pfile, "%lf", &number);

m_x0.Format( "%5.3lf", x0 );
m_y0.Format("%5.3lf",y0);
m_f0.Format("%5.3lf",f0);
m_m.Format("%5.3lf",m);
m_H.Format("%5.3lf",H);

for(i=0;i<number;i++)
{
fscanf(pfile,"%lf",&ximage[i]);
fscanf(pfile,"%lf",&yimage[i]);
fscanf(pfile,"%lf",&X[i]);
fscanf(pfile,"%lf",&Y[i]);
fscanf(pfile,"%lf",&Z[i]);
m_controlpoint.Format("%5.3lf",ximage[i]);
m_controlpoint.Format("%5.3lf",yimage[i]);
m_controlpoint.Format("%5.3lf",X[i]);
m_controlpoint.Format("%5.3lf",Y[i]);
m_controlpoint.Format("%5.3lf",Z[i]);
}

CString str1;
for(i=0;i<number;i++)
{
str1=str1+"---------------------"+"\r\n";
str1=str1+"控制点像点坐标x:"+ximage[i]+"\r\n";
str1=str1+"控制点像点坐标y:"+yimage[i]+"\r\n";
str1=str1+"控制点空间坐标X:"+X[i]+"\r\n";
str1=str1+"控制点空间坐标Y:"+Y[i]+"\r\n";
str1=str1+"控制点像点坐标Z:"+Z[i]+"\r\n";
CEdit *pEdit=(CEdit*)GetDlgItem(IDC_CONTROLPOINT);
pEdit->SetSel(0,-1);
int nStart,nEnd;
pEdit->GetSel(nStart,nEnd);
pEdit->SetSel(nEnd,nEnd);
pEdit->ReplaceSel(str1);
UpdateData(false);
}

fclose(pfile);
}
UpdateData(false);
}

MFC edit?box
[解决办法]
第一个循环还知道Format的,你再看第二个循环……这不是VB,也不是Javascript,字符串和数值不能直接+、-。
[解决办法]
需要格式化
CString str2;
str2.Format(_T("控制点像点坐标x:%.3f\r\n"), ximage[i]);
str1 += str2;

热点排行