void CCooch::OnBnClickedButton3() //坐标转换操作
{
// TODO:在此添加控件通知处理程序代码
CString data1;
CString data2;
CString data3;
double data11;
double data21;
double data31;
double a_84=6378137;
double ee_84=0.00669437999013;
double N_84;
double WW_84;
edit1.GetWindowText(data1);
edit2.GetWindowText(data2);
edit3.GetWindowText(data3);
CStringA dataA(data1);
CStringA dataB(data2);
CStringA dataC(data3);
data11=atof(dataA.GetBuffer());
data21=atof(dataB.GetBuffer());
data31=atof(dataC.GetBuffer());
if((data1=="")||(data2=="")||(data3==""))
{
MessageBox(L"数据不能为空!",L"工程之星3.0",MB_ICONEXCLAMATION );
}
else
{
int temp1,temp2;
int flag1,flag2;
temp1=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2);
temp2=GetCheckedRadioButton(IDC_RADIO2,IDC_RADIO3);
flag1=GetCheckedRadioButton(IDC_RADIO4,IDC_RADIO5);
flag2=GetCheckedRadioButton(IDC_RADIO5,IDC_RADIO6);
if ((temp1==IDC_RADIO1)&&(flag1==IDC_RADIO4))
{
edit4.SetWindowText(data1);
edit5.SetWindowText(data2);
edit6.SetWindowText(data3);
}
if ((temp1==IDC_RADIO1)&&(flag1==IDC_RADIO5))
{
double XX;
double YY;
double ZZ;
CString dat1;
CString dat2;
CString dat3;
WW_84=1-(ee_84*sin(data11)*sin(data11));
N_84=a_84/(sqrt(WW_84));
XX=(N_84+data31)*cos(data11)*cos(data21);
YY=(N_84+data31)*cos(data11)*sin(data21);
ZZ=(N_84*(1-ee_84)+data31)*sin(data11);
dat1.Format("%lf",XX);
dat2.Format("%lf",YY);
dat3.Format("%lf",ZZ);
edit4.SetWindowText(dat1);
edit5.SetWindowText(dat2);
edit6.SetWindowText(dat3);
}
}
}
把"%lf"换成-T("%lf")可以解决double转换成Cstring的问题。