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

📄 zbxtsz.cpp

📁 坐标转换程序,可以将空间直角坐标转化为大地坐标
💻 CPP
字号:
// ZbxtSz.cpp : implementation file
//

#include "stdafx.h"
#include "坐标转换.h"
#include "ZbxtSz.h"
#include "gybl.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CZbxtSz dialog


CZbxtSz::CZbxtSz(CWnd* pParent /*=NULL*/)
	: CDialog(CZbxtSz::IDD, pParent)
{
	//{{AFX_DATA_INIT(CZbxtSz)
	m_Name = _T("");
	m_TYG = 0.0;
	m_XP = 0.0;
	m_YP = 0.0;
	m_Zyzwx = 0.0;
	m_Ra = 0.0;
	m_Bl = _T("");
	//}}AFX_DATA_INIT
}


void CZbxtSz::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CZbxtSz)
	DDX_Control(pDX, IDC_New_Delete, m_New_Delete);
	DDX_Control(pDX, IDC_SAVE_ZBXT, m_SAVE_ZBXT);
	DDX_Control(pDX, IDC_ZbxtSZ_Zyzwx, m_C_Zyzwx);
	DDX_Control(pDX, IDC_ZbxtSZ_YP, m_C_YP);
	DDX_Control(pDX, IDC_ZbxtSZ_XP, m_C_XP);
	DDX_Control(pDX, IDC_ZbxtSZ_TYG, m_C_TYG);
	DDX_Control(pDX, IDC_ZbxtSZ_Ra, m_C_Ra);
	DDX_Control(pDX, IDC_ZbxtSZ_Name, m_C_Name);
	DDX_Control(pDX, IDC_ZbxtSZ_Bl, m_C_Bl);
	DDX_Control(pDX, IDC_ZbxtSZ_List, m_List);
	DDX_Text(pDX, IDC_ZbxtSZ_Name, m_Name);
	DDV_MaxChars(pDX, m_Name, 100);
	DDX_Text(pDX, IDC_ZbxtSZ_TYG, m_TYG);
	DDX_Text(pDX, IDC_ZbxtSZ_XP, m_XP);
	DDX_Text(pDX, IDC_ZbxtSZ_YP, m_YP);
	DDX_Text(pDX, IDC_ZbxtSZ_Zyzwx, m_Zyzwx);
	DDX_Text(pDX, IDC_ZbxtSZ_Ra, m_Ra);
	DDX_Text(pDX, IDC_ZbxtSZ_Bl, m_Bl);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CZbxtSz, CDialog)
	//{{AFX_MSG_MAP(CZbxtSz)
	ON_LBN_DBLCLK(IDC_ZbxtSZ_List, OnDblclkZbxtSZList)
	ON_BN_CLICKED(IDC_New_ZBXT, OnNewZBXT)
	ON_BN_CLICKED(IDC_SAVE_ZBXT, OnSaveZbxt)
	ON_LBN_SELCHANGE(IDC_ZbxtSZ_List, OnDblclkZbxtSZList)
	ON_BN_CLICKED(IDC_New_Delete, OnNewDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CZbxtSz message handlers

void CZbxtSz::OnCancel() 
{
	// TODO: Add extra cleanup here
	
   //	CDialog::OnCancel();
}

void CZbxtSz::OnDblclkZbxtSZList() 
{
    int i;    
	CString str;
	i=m_List.GetCurSel();
	if (i==-1) return;
    m_List.GetText(m_List.GetCurSel(),str);

	GyBl.Zbxt_work= GyBl.Zbxt_head;
	while (GyBl.Zbxt_work!=NULL)
	{  
//     if (strcmp(GyBl.Zbxt_work->XtName,str)==0) break;
	   if (i==0) break;
	   i--;
	   GyBl.Zbxt_work=GyBl.Zbxt_work->next;
	}
	 addshu();
}

void CZbxtSz::addshu()
{    CString str;
     m_Name.Format("%s",GyBl.Zbxt_work->XtName);
     m_Ra=GyBl.Zbxt_work->Ra;
     str.Format("%c.%df",'%',GyBl.Zbxt_work->Bl_num);
     m_Bl.Format(str,GyBl.Zbxt_work->Bl);
     m_YP=500000;
     m_XP=m_Zyzwx=m_TYG=0;
	 if (strcmp(GyBl.Zbxt_work->Xtmode,"系统保留")==0)
	 {
   	 m_C_Name.EnableWindow(FALSE);
	 m_C_Ra.EnableWindow(FALSE);
	 m_C_Bl.EnableWindow(FALSE);
	 m_C_Zyzwx.EnableWindow(FALSE);
	 m_C_XP.EnableWindow(FALSE);
	 m_C_YP.EnableWindow(FALSE);
	 m_C_TYG.EnableWindow(FALSE);
     m_SAVE_ZBXT.EnableWindow(FALSE);
     m_New_Delete.EnableWindow(FALSE);
	 }
	 else
	 {
       m_Zyzwx=GyBl.Zbxt_work->Zyzwx;
       m_TYG=GyBl.Zbxt_work->Tyg;
       m_XP=GyBl.Zbxt_work->Xp;
       m_YP=GyBl.Zbxt_work->Yp;
	   m_C_Name.EnableWindow(TRUE);
	   m_C_Ra.EnableWindow(TRUE);
	   m_C_Bl.EnableWindow(TRUE);
	   m_C_Zyzwx.EnableWindow(TRUE);
	   m_C_XP.EnableWindow(TRUE);
	   m_C_YP.EnableWindow(TRUE);
	   m_C_TYG.EnableWindow(TRUE);
	   m_SAVE_ZBXT.EnableWindow(TRUE);
	   m_New_Delete.EnableWindow(TRUE);
	 }
	CWnd::UpdateData(FALSE);
}


BOOL CZbxtSz::OnInitDialog() 
{
	CDialog::OnInitDialog();

	GyBl.Zbxt_work= GyBl.Zbxt_head;
	while (GyBl.Zbxt_work!=NULL)
	{ 
        m_List.AddString(GyBl.Zbxt_work->XtName);
		GyBl.Zbxt_work=GyBl.Zbxt_work->next;
	}
	GyBl.Zbxt_work= GyBl.Zbxt_head;
	if (GyBl.Zbxt_work==NULL)  return FALSE;
	addshu();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


void CZbxtSz::OnNewZBXT() 
{
	   CString str;
	   GyBl.NewZbxt();
       getshu();
	   strcpy(GyBl.Zbxt_work->XtName,"自定义坐标系统");
       strcpy(GyBl.Zbxt_work->Xtmode,"自定义坐标系统");
       GyBl.Zbxt_work->Bl_num=9;
       m_Name.Format("%s",GyBl.Zbxt_work->XtName);
       str.Format("%c.%df",'%',GyBl.Zbxt_work->Bl_num);
       m_Bl.Format(str,GyBl.Zbxt_work->Bl);
	   m_C_Name.EnableWindow(TRUE);
	   m_C_Ra.EnableWindow(TRUE);
	   m_C_Bl.EnableWindow(TRUE);
	   m_C_Zyzwx.EnableWindow(TRUE);
	   m_C_XP.EnableWindow(TRUE);
	   m_C_YP.EnableWindow(TRUE);
	   m_C_TYG.EnableWindow(TRUE);
	   m_List.AddString(GyBl.Zbxt_work->XtName);
       CWnd::UpdateData(FALSE);
	   m_List.SetCurSel(m_List.GetCount()-1);
	   addshu();
}

void CZbxtSz::getshu()
{
	CWnd::UpdateData(TRUE);
    strcpy(GyBl.Zbxt_work->XtName,m_Name);
    GyBl.Zbxt_work->Ra=m_Ra;
    GyBl.Zbxt_work->Bl=atof(m_Bl);
    GyBl.Zbxt_work->Zyzwx=m_Zyzwx;
    GyBl.Zbxt_work->Tyg=m_TYG;
    GyBl.Zbxt_work->Xp=m_XP;
    GyBl.Zbxt_work->Yp=m_YP;
}

void CZbxtSz::OnSaveZbxt() 
{  int i;
   getshu();
   i=m_List.GetCurSel();
   m_List.DeleteString(i);
   m_List.InsertString(i,GyBl.Zbxt_work->XtName);
   m_List.SetCurSel(i);
}

void CZbxtSz::OnOK() 
{
	// TODO: Add extra validation here
	GyBl.SaveZbxt();
	CDialog::OnOK();
}

void CZbxtSz::OnNewDelete() 
{  int i;
   i=m_List.GetCurSel();
   m_List.DeleteString(i);
   if (i==-1) return ; 
   
   GyBl.Zbxt_work1= GyBl.Zbxt_head;
   while (GyBl.Zbxt_work1->next!=NULL)
	{ 
	 if (GyBl.Zbxt_work1->next==GyBl.Zbxt_work) break;
	 GyBl.Zbxt_work1=GyBl.Zbxt_work1->next;
	}
   GyBl.Zbxt_work1->next=GyBl.Zbxt_work->next;
   delete GyBl.Zbxt_work;
   GyBl.Zbxt_work=GyBl.Zbxt_work1;
   m_List.SetCurSel(i-1);
   addshu();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -