📄 dlalogsurvey.cpp
字号:
m_grid_begin.SetRow(0);
StrTxt = "< 点号 >|< X坐标 >|< Y坐标 >|< 高 程 >";
m_grid_begin.SetFormatString(StrTxt);
m_grid_begin.Refresh();
m_grid_last.SetCol(0);
m_grid_last.SetRow(0);
StrTxt = "< 点号 >|< 坐标X >|< 坐标Y >|< 高 程 >";
m_grid_last.SetFormatString(StrTxt);
m_grid_last.Refresh();
UpdateData(true);
m_rfarst=0;
m_rlast=0;
m_rref=0;
SetDH_FARST(6);
SetDH_LAST(6);
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlalogSurvey::SetDH_FARST(int Dh)
{
//m_cmb_farst.Clear();
int cmbcount;
cmbcount=m_cmb_farst.GetCount();
for(int j = 0;j<cmbcount;j++)
{
m_cmb_farst.DeleteString(0);
}
CString stradd;
int k=0;
if(Dh == 6)
{ k = 1;}
else
{ k = 2;}
for(int i = k;i<= 30 * k;i++)
{
stradd.Format("%i/%i",Dh*i-Dh+3,i);
m_cmb_farst.AddString(stradd);
}
m_cmb_farst.SetCurSel(21*k);
}
void CDlalogSurvey::SetDH_LAST(int Dh)
{
int cmbcount;
cmbcount=m_cmb_last.GetCount();
for(int j = 0;j<cmbcount;j++)
{
m_cmb_last.DeleteString(0);
}
CString stradd;
int k=0;
if(Dh == 6)
{ k = 1;}
else
{ k = 2;}
for(int i = k;i<= 30 * k;i++)
{
stradd.Format("%i/%i",Dh*i-Dh+3,i);
m_cmb_last.AddString(stradd);
}
m_cmb_last.SetCurSel(21*k);
}
BEGIN_EVENTSINK_MAP(CDlalogSurvey, CDialog)
//{{AFX_EVENTSINK_MAP(CDlalogSurvey)
ON_EVENT(CDlalogSurvey, IDC_MSFLEXGRID_FARST, -603 /* KeyPress */, OnKeyPressMsflexgridFarst, VTS_PI2)
ON_EVENT(CDlalogSurvey, IDC_MSFLEXGRID_LAST, -603 /* KeyPress */, OnKeyPressMsflexgridLast, VTS_PI2)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CDlalogSurvey::OnKeyPressMsflexgridFarst(short FAR* KeyAscii)
{
CString getdata;CString strport;
getdata=m_grid_begin.GetText();
getdata.TrimLeft();
getdata.TrimRight();
if(*KeyAscii==8)
{
strport=getdata.Left(getdata.GetLength()-1);
m_grid_begin.SetText(strport);
}
else if(*KeyAscii==32)
{
long scol=0;
scol=m_grid_begin.GetCol();
if(scol>=2)
{
m_grid_begin.SetRow(m_grid_begin.GetRow()+1);
m_grid_begin.SetCol(0);
}
else
{
m_grid_begin.SetCol(scol+1);
}
}
else
{
strport.Format("%c",*KeyAscii);
getdata=getdata+strport;
m_grid_begin.SetText(getdata);
}
}
void CDlalogSurvey::OnKeyPressMsflexgridLast(short FAR* KeyAscii)
{
CString getdata;CString strport;
getdata=m_grid_last.GetText();
getdata.TrimLeft();
getdata.TrimRight();
if(*KeyAscii==8)
{
strport=getdata.Left(getdata.GetLength()-1);
m_grid_last.SetText(strport);
}
else if(*KeyAscii==32)
{
long scol=0;
scol=m_grid_last.GetCol();
if(scol>=2)
{
m_grid_last.SetRow(m_grid_last.GetRow()+1);
m_grid_last.SetCol(0);
}
else
{
m_grid_last.SetCol(scol+1);
}
}
else
{
strport.Format("%c",*KeyAscii);
getdata=getdata+strport;
m_grid_last.SetText(getdata);
}
}
void CDlalogSurvey::OnRadioFarst()
{
UpdateData(true);
if(m_rfarst==0)
{
SetDH_FARST(6);
}
}
void CDlalogSurvey::OnRadioFarst3()
{
UpdateData(true);
if(m_rfarst==1)
{
SetDH_FARST(3);
}
}
void CDlalogSurvey::OnRADIOFARSTn()
{
UpdateData(true);
if(m_rfarst==2)
{
int cmbcount;
cmbcount=m_cmb_farst.GetCount();
for(int j = 0;j<cmbcount;j++)
{
m_cmb_farst.DeleteString(0);
}
}
}
void CDlalogSurvey::OnRadioLast6()
{
UpdateData(true);
if(m_rlast==0)
{
SetDH_LAST(6);
}
}
void CDlalogSurvey::OnRadioLast3()
{
UpdateData(true);
if(m_rlast==1)
{
SetDH_LAST(3);
}
}
void CDlalogSurvey::OnRADIOLASTn()
{
UpdateData(true);
if(m_rlast==2)
{
int cmbcount;
cmbcount=m_cmb_last.GetCount();
for(int j = 0;j<cmbcount;j++)
{
m_cmb_last.DeleteString(0);
}
}
}
void CDlalogSurvey::OnCheckBegin()
{
UpdateData(true);
int scale=0;
CString strzby;
double dhzby=0;
if(m_dhbegin)
{
scale=1000000;
}
else
{
scale=-1000000;
}
int sel = m_cmb_farst.GetCurSel();
int setmer=0,setdh=0;
CString strtext;
if(sel>=0) //设置中央子午线及带号。
{
m_cmb_farst.GetLBText(sel,strtext);
GetDhMeridian(strtext,&setmer,&setdh);
}
for(long k=1;k<m_grid_begin.GetRows();k++)
{
m_grid_begin.SetCol(2);
m_grid_begin.SetRow(k);
strzby=m_grid_begin.GetText();
if(strzby.IsEmpty()) {break;}
dhzby=atof(strzby);
if(scale>0)
{
//setdh=(int)dhzby/scale;
dhzby=dhzby+scale*setdh;
strzby.Format("%.3f",dhzby);
m_grid_begin.SetText(strzby);
}
if(scale<0)
{
setdh=(int)dhzby/(-scale);
dhzby=dhzby+scale*setdh;
strzby.Format("%.3f",dhzby);
m_grid_begin.SetText(strzby);
}
}
}
void CDlalogSurvey::OnCheckLast()
{
UpdateData(true);
int scale=0;
CString strzby;
double dhzby=0;
if(m_dhlast)
{
scale=1000000;
}
else
{
scale=-1000000;
}
int sel = m_cmb_last.GetCurSel();
int setmer=0,setdh=0;
CString strtext;
if(sel>=0) //设置中央子午线及带号。
{
m_cmb_last.GetLBText(sel,strtext);
GetDhMeridian(strtext,&setmer,&setdh);
}
for(long k=1;k<m_grid_last.GetRows();k++)
{
m_grid_last.SetCol(2);
m_grid_last.SetRow(k);
strzby=m_grid_last.GetText();
if(strzby.IsEmpty()) {break;}
dhzby=atof(strzby);
if(scale>0)
{
//setdh=(int)dhzby/scale;
dhzby=dhzby+scale*setdh;
strzby.Format("%.3f",dhzby);
m_grid_last.SetText(strzby);
}
if(scale<0)
{
setdh=(int)dhzby/(-scale);
dhzby=dhzby+scale*setdh;
strzby.Format("%.3f",dhzby);
m_grid_last.SetText(strzby);
}
}
}
CString CDlalogSurvey::GetFileName(CString strtype)
{
CString strfilename;
CFileDialog gldOpenFile(true,"*.*",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strtype,NULL);
gldOpenFile.DoModal();
strfilename=gldOpenFile.GetPathName();
return strfilename;
}
void CDlalogSurvey::ReadLine(CString strline,char token,double *array)
{
CString strport;
int ifind=0;
int num=0;
strline.TrimLeft();
strline.TrimRight();
ifind=strline.Find(token);
while(ifind>=0)
{
*(array+num)=atof(strline.Left(ifind));
num++;
strport=strline.Right(strline.GetLength()-ifind);
strport.TrimLeft();
strport.TrimRight();
strline=strport;
ifind=strline.Find(token);
}
*(array+num)=atof(strline);
return;
}
//计算中央子午线和带号
void CDlalogSurvey::GetDhMeridian(CString stryuan,int* meridian,int* gdh)
{
int ifind=stryuan.Find('/');
if(ifind>=0)
{
*meridian=atoi(stryuan.Left(ifind));
*gdh=atoi(stryuan.Right(stryuan.GetLength()-ifind-1));
}
else
{
*meridian=atoi(stryuan);
*gdh = 0;
}
return;
}
BOOL CDlalogSurvey::DestroyWindow()
{
//m_grid_begin.DestroyWindow();
//m_grid_last.DestroyWindow();
//m_grid_sd.DestroyWindow();
//AfxMessageBox("测试");
return CDialog::DestroyWindow();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -