📄 dlgcoordtrans.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 + -