⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlalogsurvey.cpp

📁 能够实现一些常用的地图转换
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	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 + -