📄 convert.cpp
字号:
ON_EVENT(CConvert, IDC_Grid2, -603 /* KeyPress */, OnKeyPressGrid1, VTS_PI2)
ON_EVENT(CConvert, IDC_Grid3, -603 /* KeyPress */, OnKeyPressGrid1, VTS_PI2)
ON_EVENT(CConvert, IDC_Grid4, -603 /* KeyPress */, OnKeyPressGrid1, VTS_PI2)
ON_EVENT(CConvert, IDC_Grid5, -603 /* KeyPress */, OnKeyPressGrid1, VTS_PI2)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CConvert::OnClickGrid1()
{
TransferValue (FALSE);
}
void CConvert::OnEnterCellGrid1()
{
TransferValue (FALSE);
}
void CConvert::OnKeyPressGrid1(short FAR* KeyAscii)
{
switch (k_mode)
{
case 1:
m_Grid=&m_Grid1;
break;
case 2:
m_Grid=&m_Grid2;
break;
case 3:
m_Grid=&m_Grid3;
break;
case 4:
m_Grid=&m_Grid4;
break;
case 5:
m_Grid=&m_Grid5;
break;
}
switch ( (int) * KeyAscii) {
case VK_BACK : //Backspace - delete the last character
m_GridData .Delete (m_GridData .GetLength ()-1,1);
break;
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '0':
m_GridData = m_GridData + (TCHAR *) KeyAscii;
break;
case '.':
if ((m_GridData.Find('.')==-1))
m_GridData = m_GridData + (TCHAR *) KeyAscii;
break;
case '-':
if (m_GridData=="")
m_GridData = m_GridData + (TCHAR *) KeyAscii;
break;
default :
if (m_Grid->GetCol()==1)
m_GridData = m_GridData + (TCHAR *) KeyAscii;
break;
}
TransferValue (TRUE);
}
BOOL CConvert::TransferValue(BOOL ToGrid)
{
CString sText;
switch (k_mode)
{
case 1:
m_Grid=&m_Grid1;
break;
case 2:
m_Grid=&m_Grid2;
break;
case 3:
m_Grid=&m_Grid3;
break;
case 4:
m_Grid=&m_Grid4;
break;
case 5:
m_Grid=&m_Grid5;
break;
}
if (ToGrid)
{ //Transfer value to Grid from Edit Box
switch (k_mode)
{
case 1:
case 2:
case 3:
if (m_Grid->GetCol()<4) m_Grid->SetText(m_GridData);
break;
case 4:
case 5:
if (m_Grid->GetCol()<5) m_Grid->SetText(m_GridData);
break;
}
} else {
m_GridData = m_Grid->GetText ();
m_Grid->SetBackColorSel(RGB(0,255,255));
m_Grid->SetForeColor(RGB(255,0,0));
}
return TRUE;
}
void CConvert::OnInsert()
{
int i,j,k;
CString str;
switch (k_mode)
{
case 1:
m_Grid=&m_Grid1;
break;
case 2:
m_Grid=&m_Grid2;
break;
case 3:
m_Grid=&m_Grid3;
break;
case 4:
m_Grid=&m_Grid4;
break;
case 5:
m_Grid=&m_Grid5;
break;
}
switch (k_mode)
{
case 1:
case 2:
case 3:
i=m_Grid->GetRow();
m_Grid->SetRows(m_Grid->GetRows()+1);
for (j=m_Grid->GetRows()-1;j>i+1;j--)
{
for (k=1;k<=5;k++)
{
m_Grid->SetCol(k); m_Grid->SetRow(j-1); str=m_Grid->GetText();
m_Grid->SetRow(j); m_Grid->SetText(str);
}
}
str=""; m_Grid->SetCol(1);m_Grid->SetRow(i+1);m_Grid->SetText(str);
m_Grid->SetCol(2);m_Grid->SetText(str);
m_Grid->SetCol(3);m_Grid->SetText(str);
m_Grid->SetCol(4);m_Grid->SetText(str);
m_Grid->SetCol(5);m_Grid->SetText(str);
break;
case 4:
case 5:
i=m_Grid->GetRow();
m_Grid->SetRows(m_Grid->GetRows()+1);
for (j=m_Grid->GetRows()-1;j>i+1;j--)
{
for (k=1;k<=7;k++)
{
m_Grid->SetCol(k); m_Grid->SetRow(j-1); str=m_Grid->GetText();
m_Grid->SetRow(j); m_Grid->SetText(str);
}
}
str=""; m_Grid->SetCol(1);m_Grid->SetRow(i+1);m_Grid->SetText(str);
m_Grid->SetCol(2);m_Grid->SetText(str);
m_Grid->SetCol(3);m_Grid->SetText(str);
m_Grid->SetCol(4);m_Grid->SetText(str);
m_Grid->SetCol(5);m_Grid->SetText(str);
m_Grid->SetCol(6);m_Grid->SetText(str);
m_Grid->SetCol(7);m_Grid->SetText(str);
break;
}
}
void CConvert::OnDelete()
{
int i,j,k;
CString str;
switch (k_mode)
{
case 1:
m_Grid=&m_Grid1;
break;
case 2:
m_Grid=&m_Grid2;
break;
case 3:
m_Grid=&m_Grid3;
break;
case 4:
m_Grid=&m_Grid4;
break;
case 5:
m_Grid=&m_Grid5;
break;
}
switch (k_mode)
{
case 1:
case 2:
case 3:
i=m_Grid->GetRow();
if (i==0) break;
m_Grid->SetCol(1); m_Grid->SetRow(i); str=m_Grid->GetText();
str="确认删除 "+str;
if (AfxMessageBox(str,MB_YESNO)==IDYES)
{
for (j=i+1;j<m_Grid->GetRows();j++)
{
for (k=1;k<=5;k++)
{
m_Grid->SetCol(k); m_Grid->SetRow(j); str=m_Grid->GetText();
m_Grid->SetRow(j-1); m_Grid->SetText(str);
}
}
m_Grid->SetRows(m_Grid->GetRows()-1);
}
break;
case 4:
case 5:
i=m_Grid->GetRow();
if (i==0) break;
m_Grid->SetCol(1); m_Grid->SetRow(i); str=m_Grid->GetText();
str="确认删除 "+str;
if (AfxMessageBox(str,MB_YESNO)==IDYES)
{
for (j=i+1;j<m_Grid->GetRows();j++)
{
for (k=1;k<=7;k++)
{
m_Grid->SetCol(k); m_Grid->SetRow(j); str=m_Grid->GetText();
m_Grid->SetRow(j-1); m_Grid->SetText(str);
}
}
m_Grid->SetRows(m_Grid->GetRows()-1);
}
break;
}
}
void CConvert::OnOK()
{
// TODO: Add extra validation here
WriteData();
CDialog::OnOK();
}
double CConvert::CallL0(double l,int mode)
{
double d0,l0;
d0=l*180.0/PI;
// double xxx;
l0=0;
if (mode==0) GyBl.Zbxt_work= &GyBl.WorkData.Zbxt;
else GyBl.Zbxt_work= &GyBl.WorkData.New_Zbxt;
//中央子午线计算
if (strcmp(GyBl.Zbxt_work->Xtmode,"自定义坐标系统")==0)
{
l0=GyBl.Zbxt_work->Zyzwx;
l0=Deg(l0);
// xxx=GyBl.Zbxt_work->Yp;
}
else
{
// xxx=500000.000;
{// int tt;
// 3度 6度计算
CWnd::UpdateData(TRUE);
if (mode==0)
l0=m_Zyzwx;
else l0=m_New_Zyzwx;
}
}
l0=l0 *PI/180;
// vSetSystem(WorkSpaceData.Zbxt.Ra,1/WorkSpaceData.Zbxt.Bl,0,l0,0,xxx,1);
return l0;
}
double CConvert::Deg(double a2)
{
double d;
double du,fen,miao;
double nn;
if (a2<0) { nn=-1;a2=-a2;} else nn=1;
du=floor(a2); fen=floor((a2-du)*100);
miao=((a2-du)*100-fen)*100;
if (miao>=60) { fen++;miao=0;
if (fen>=60) { fen=0;du++;}
}
d=du+fen/60+miao/3600;
d=d*nn;
return(d);
}
double CConvert::Dfm(double a2)
{
double d;
double du,fen,miao;
double nn;
if (a2<0) { nn=-1;a2=-a2;} else nn=1;
du=floor(a2);
fen=floor((a2-du)*60);
miao=((a2-du)*60-fen)*60;
if ((miao+0.00001)>=60) { fen++;miao=0;
if (fen>=60) { fen=0;du++;}
}
d=du+fen/100+miao/10000;
d=d*nn;
return(d);
}
void CConvert::ReadData()
{
int i,j,k;
char buf[100];
double xx;
m_Grid1.SetRows(1);
m_Grid2.SetRows(1);
m_Grid3.SetRows(1);
m_Grid4.SetRows(1);
m_Grid5.SetRows(1);
m_Grid6.SetRows(1);
m_Grid7.SetRows(1);
FILE *in;
in =fopen ("data","r+");
if (in!=NULL)
{
//m_Grid1
fread(&j,sizeof(int),1,in);
m_Grid1.SetRows(j);
for (i=0;i<j-1;i++)
{
m_Grid1.SetRow(i+1);
for (k=1;k<=5;k++)
{
if (k==1) fread(buf,20,1,in);
else { fread(&xx,sizeof(double),1,in);
if (xx!=0) sprintf(buf,"%.3f",xx);
else strcpy(buf,"");
}
m_Grid1.SetCol(k); m_Grid1.SetText(buf);
}
}
//m_Grid2
fread(&j,sizeof(int),1,in);
m_Grid2.SetRows(j);
for (i=0;i<j-1;i++)
{
m_Grid2.SetRow(i+1);
for (k=1;k<=5;k++)
{
if (k==1) fread(buf,20,1,in);
else { fread(&xx,sizeof(double),1,in);
if (xx!=0)
{
if (k<=3)
sprintf(buf,"%.8f",xx);
else
sprintf(buf,"%.3f",xx);
}
else strcpy(buf,"");
}
m_Grid2.SetCol(k); m_Grid2.SetText(buf);
}
}
//m_Grid3
fread(&j,sizeof(int),1,in);
m_Grid3.SetRows(j);
for (i=0;i<j-1;i++)
{
m_Grid3.SetRow(i+1);
for (k=1;k<=5;k++)
{
if (k==1) fread(buf,20,1,in);
else { fread(&xx,sizeof(double),1,in);
if (xx!=0)
{
if (k<=3)
sprintf(buf,"%.3f",xx);
else
sprintf(buf,"%.8f",xx);
}
else strcpy(buf,"");
}
m_Grid3.SetCol(k); m_Grid3.SetText(buf);
}
}
//m_Grid4
fread(&j,sizeof(int),1,in);
m_Grid4.SetRows(j);
for (i=0;i<j-1;i++)
{
m_Grid4.SetRow(i+1);
for (k=1;k<=7;k++)
{
if (k==1) fread(buf,20,1,in);
else { fread(&xx,sizeof(double),1,in);
if (xx!=0)
{
if (k<=3)
sprintf(buf,"%.8f",xx);
else
sprintf(buf,"%.3f",xx);
}
else strcpy(buf,"");
}
m_Grid4.SetCol(k); m_Grid4.SetText(buf);
}
}
//m_Grid5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -