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

📄 dlgcoordtrans.h

📁 GPS坐标转换软件与源程序 支持世界上大多数坐标框架下
💻 H
字号:
#if !defined(AFX_DLGCOORDTRANS_H__C6B8F31C_4BDD_483F_8CAD_B2C70E7AF307__INCLUDED_)
#define AFX_DLGCOORDTRANS_H__C6B8F31C_4BDD_483F_8CAD_B2C70E7AF307__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DlgCoordTrans.h : header file

#include <fstream>
#include "math.h"
#include <string>
#include "afxcmn.h"
#include "afxwin.h"
#include <vector>
#include "./SelfFun/GeoPos.h"
#include "./SelfCtrl/ComboListCtrl.h"
#include "./SelfCtrl/StatLink.h"
using namespace std;

struct datumtran 
{
	//model: 0: no datum transformation.1:
	u1 model;
	u1 srcellip;
	u1 destellip;
//	char name[50];
	//seven para
	f4	factor;
	f4	tx,ty,tz;
	f4	wx,wy,wz;
	datumtran(){memset(this,0,sizeof(this));}
};

/////////////////////////////////////////////////////////////////////////////
// CDlgCoordTrans dialog
class CDlgCoordTrans : public CDialog
{
// Construction
public:
	CDlgCoordTrans(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CDlgCoordTrans)
	enum { IDD = IDD_COORTRAN_DIALOG };
	CEdit	m_edtSrcZone;
	CEdit	m_edtDestZone;
	CEdit	m_edtdest1;
	CEdit	m_edtdest2;
	CEdit	m_edtdest3;
	CEdit	m_edtsrc1;
	CEdit	m_edtsrc2;
	CEdit	m_edtsrc3;
	CButton	m_chkDatum;
	CComboBox	m_cmbDestUnit;
	CComboBox	m_cmbSrcUnit;
	CComboBox	m_cmbDestEllip;
	CComboBox	m_cmbSrcEllip;	
	CButton		m_btnSrcCAR;
	CButton		m_btnSrcGEO;
	CButton		m_btnSrcPLAN;
	CButton		m_btnDestCAR;
	CButton		m_btnDestGEO;
	CButton		m_btnDestPLAN;
	CString	m_src_label1;
	CString	m_src_label2;
	CString	m_src_label3;
	CString	m_dest_label1;
	CString	m_dest_label2;
	CString	m_dest_label3;
	CString	m_destzone;
	CString	m_srczone;
	//}}AFX_DATA
	//0:Cartesian; 1: Geodetic; 2:grid plan
	i4		m_SrcCoordType,m_DestCoordType;
	//0: "DD:MMSS"; 1:"DD度MM'SS''" 2: DEG; 3: RADIAN; 4: SECOND;
	char	m_SrcBLUnit,m_DestBLUnit;
	CReferenceEllipsoid m_SrcEllip;
	CReferenceEllipsoid m_DestEllip;
	CString m_zone;
	double	m_dest1;
	double	m_dest2;
	double	m_dest3;
	double  m_src1;
	double  m_src2;
	double  m_src3;
	
	double	m_k0;
	double  m_lon0;
	char	m_NorS;
	BOOL	m_bProject;
	BOOL	m_bDatumTran;	
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDlgCoordTrans)
protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL
public:
	CWnd* m_pParent;
	HWND hWnd;
	
// Implementation
private:
	//flag: 0x3 both src and dest update, 0x1 src, 0x2 dest;
	void RetrieveDataFromCtrl(const char flag=3);
	//flag: 0x3 both src and dest update, 0x1 src, 0x2 dest;
	void InitializeDataToCtrl(const char flag=3);	
	HINSTANCE m_hLangDLL;
protected:
	
	void PopulateCombo();
	void SetCheckState();
	// Generated message map functions
	//{{AFX_MSG(CDlgCoordTrans)
	virtual void OnCancel();
	afx_msg void OnCoordTrans();
	afx_msg void OnSelchangeDestEllip();
	afx_msg void OnSelchangeSrcEllip();
	virtual BOOL OnInitDialog();
	afx_msg void OnRadSrcCar();
	afx_msg void OnRadSrcGeo();
	afx_msg void OnRadDestCar();
	afx_msg void OnRadDestGeo();
	afx_msg void OnRadDestPlan();
	afx_msg void OnRadSrcPlan();
	afx_msg void OnSelchangeSrcUnit();
	afx_msg void OnSelchangeDestUnit();
	afx_msg void OnChkDatum();
	afx_msg void OnMenuDatumtrans();
	afx_msg void OnMenuProject();
	afx_msg void OnAppAbout();
	afx_msg void OnFileSave();
	afx_msg void OnFileOpen();
	afx_msg void OnDataExchange();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnLangzhCN();
	afx_msg void OnLangEn();
	void Localize(u1 flag = 0);
	afx_msg void OnEllip();
};


/////////////////////////////////////////////////////////////////////////////
// CDlgAbout dialog
class CDlgAbout : public CDialog
{
// Construction
public:
	CDlgAbout(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CDlgAbout)
	enum { IDD = IDD_ABOUTBOX };
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDlgAbout)
protected:
	CStaticLink	m_wndLink1;
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	virtual BOOL OnInitDialog();
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CDlgAbout)
	
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
// CDlgProject dialog

class CDlgProject : public CDialog
{
// Construction
public:
	CDlgProject(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CDlgProject)
	enum { IDD = IDD_DLG_PROJECTION };
	CEdit	m_edtNfalse;
	CEdit	m_edtEfalse;
	CEdit	m_edtk0;
	CEdit	m_edtCM;
	CButton	m_chkBstandard;
	CComboBox	m_cmbProName;
	double	m_k0;
	double	m_efalse;
	double	m_nfalse;
	double	m_lon0;
	CButton m_radN;
	CButton m_radS;
	//}}AFX_DATA
	BOOL	m_bstandard;
	char	m_NorS;

public:
	void Localize();
// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDlgProject)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
private:
	//unsigned char 0-255,each bit indicate the state of control:check,radio,lon0,k0, efalse,nfalse.
	void SetState(unsigned char flag=0xff);

protected:

	// Generated message map functions
	//{{AFX_MSG(CDlgProject)
	virtual BOOL OnInitDialog();
	afx_msg void OnChkBstand();
	afx_msg void OnRadN();
	afx_msg void OnRadS();
	afx_msg void OnSelchangeProjection();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};


/////////////////////////////////////////////////////////////////////////////
// CEllipSoid 对话框
class CEllipSoid : public CDialog
{
	DECLARE_DYNAMIC(CEllipSoid)

public:
	CEllipSoid(CWnd* pParent = NULL);   // 标准构造函数
	virtual ~CEllipSoid();
	void Localize();

// 对话框数据
	enum { IDD = IDD_DLG_ELLIPSSET };
	unsigned int 	_num_ref;
	CString m_ellipname;
	CString m_coordname;
	double m_semimajor;
	double m_invflattening;

protected:
	virtual BOOL OnInitDialog();
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnCbnSelchangeEllip();
	afx_msg void OnBnClickedAdd();
	afx_msg void OnBnClickedDelete();
	afx_msg void OnBnClickedModify();
};




/////////////////////////////////////////////////////////////////////////////
// CDatumTranPara 对话框
class CDatumTranPara : public CDialog
{
	DECLARE_DYNAMIC(CDatumTranPara)

public:
	CDatumTranPara(CWnd* pParent = NULL);   // 标准构造函数
	virtual ~CDatumTranPara();
	void Localize();

// 对话框数据
	enum { IDD = IDD_DLG_DATUMTRAN };
	CString m_tranName;
	double m_src1;
	double m_src2;
	double m_src3;
	double m_dest1,m_dest2,m_dest3;
	u1 m_modelID;
	CComboListCtrl m_list_Data;
	CComboBox m_cmbSrcUnit;
	CComboBox m_cmbDestUnit;
	CComboBox m_cmbModelID;
	CEdit	m_edtdest1;
	CEdit	m_edtdest2;
	CEdit	m_edtdest3;
	CEdit	m_edtsrc1;
	CEdit	m_edtsrc2;
	CEdit	m_edtsrc3;
protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
	virtual BOOL OnInitDialog();
	DECLARE_MESSAGE_MAP()
public:
	
	afx_msg void OnBnClickedRadAssign();	
	afx_msg void OnCbnSelchangeCmbDatumtran();	
	afx_msg void OnBnClickedRadCalculate();
	
private:
	//0:Cartesian; 1: Geodetic
	u1	m_SrcCoordType,m_DestCoordType;
	u1	m_SrcBLUnit,m_DestBLUnit;
	u1	m_num;
	float m_factor;
	float m_Tx,m_Ty,m_Tz,m_Wx,m_Wy,m_Wz;
private:
	//flag: 0x3 both src and dest update, 0x1 src, 0x2 dest;
	void RetrieveDataFromCtrl(const char flag=3);
	//flag: 0x3 both src and dest update, 0x1 src, 0x2 dest;
	void InitializeDataToCtrl(const char flag=3);	

public:
	afx_msg void OnBnClickedRadSrcCar();
	afx_msg void OnBnClickedRadSrcGeo();
	afx_msg void OnCbnSelchangeSrcUnit();
	afx_msg void OnCbnSelchangeDestUnit();
	//save data in array and show those in listctrl;
	afx_msg void OnBnClickedAdd();
	afx_msg void OnBnClickedDelete();
	afx_msg void OnBnClickedCalculate();
//	afx_msg void OnLvnItemchangedListData(NMHDR *pNMHDR, LRESULT *pResult);
//	afx_msg void OnNMClickListData(NMHDR *pNMHDR, LRESULT *pResult);
//	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	
public:
	afx_msg void OnCbnSelchangeSrcEllip();
public:
	afx_msg void OnCbnSelchangeDestEllip();
public:
	afx_msg void OnBnClickedOk();
};



#endif // !defined(AFX_DLGCOORDTRANS_H__C6B8F31C_4BDD_483F_8CAD_B2C70E7AF307__INCLUDED_)

⌨️ 快捷键说明

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