📄 dlialog2.cpp
字号:
// DLIALOG2.cpp : implementation file
//
#include "stdafx.h"
#include "Projection.h"
#include "DLIALOG2.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include <math.h>
#define T 3.141592653589793
/////////////////////////////////////////////////////////////////////////////
// CDLIALOG2 dialog
CDLIALOG2::CDLIALOG2(CWnd* pParent /*=NULL*/)
: CDialog(CDLIALOG2::IDD, pParent)
{
//{{AFX_DATA_INIT(CDLIALOG2)
m_Bk = 15;
m_Bn = 25;
m_Bs = 0;
m_dB = 5;
m_dL = 5;
m_Le = 125;
m_Lw = 105;
m_M = 1000000;
m_L0 = 0;
//}}AFX_DATA_INIT
}
void CDLIALOG2::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDLIALOG2)
DDX_Control(pDX, IDC_LIST1, m_List);
DDX_Text(pDX, IDC_EDIT_Bk, m_Bk);
DDX_Text(pDX, IDC_EDIT_Bn, m_Bn);
DDX_Text(pDX, IDC_EDIT_Bs, m_Bs);
DDX_Text(pDX, IDC_EDIT_dB, m_dB);
DDX_Text(pDX, IDC_EDIT_dL, m_dL);
DDX_Text(pDX, IDC_EDIT_Le, m_Le);
DDX_Text(pDX, IDC_EDIT_Lw, m_Lw);
DDX_Text(pDX, IDC_EDIT_M, m_M);
DDX_Text(pDX, IDC_EDIT_L0, m_L0);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDLIALOG2, CDialog)
//{{AFX_MSG_MAP(CDLIALOG2)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDLIALOG2 message handlers
BOOL CDLIALOG2::OnInitDialog()
{
CDialog::OnInitDialog();
m_List.InsertColumn(0,"No",LVCFMT_CENTER,24);
m_List.InsertColumn(1,"B",LVCFMT_CENTER,50);
m_List.InsertColumn(2,"L",LVCFMT_CENTER,50);
m_List.InsertColumn(3,"x",LVCFMT_CENTER,70);
m_List.InsertColumn(4,"Y",LVCFMT_CENTER,75);
m_List.InsertColumn(5,"m",LVCFMT_CENTER,55);
m_List.InsertColumn(6,"n",LVCFMT_CENTER,55);
m_List.InsertColumn(7,"P",LVCFMT_CENTER,50);
m_List.InsertColumn(8,"w",LVCFMT_CENTER,50);
LONG lStyle = m_List.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE); //画表格边框
lStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP;
m_List.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)lStyle);
return TRUE; // return TRUE unless you set the focus to a control
}
void CDLIALOG2::OnButton1()
{
// TODO: Add your control notification handler code here
double x=0.0,y=0.0,m=0.0,n=0.0,k=0.0,P=0.0,w=0.0;
double a1=6378245.0,a2=6356863;
double b=0.0, bk=0.0, l=0.0, r=0.0, U=0.0, f=0.0, e=0.006694475;
int B=0,L=0;
int i=0;
CString str[9];
UpdateData();
m_List.DeleteAllItems();
for(B=(-1)*m_Bs;B<=m_Bn;B+=m_dB)
{
for(L=(-1)*m_Lw;L<=m_Le;L+=m_dL)
{
b=B*T/180.0;
bk=m_Bk*T/180.0; //角度->为弧度
l=L*T/180.0;
e=sqrt((a1*a1-a2*a2)/(a1*a1));
U=tan(T/4.0+b/2.0)/pow(tan(T/4.0+asin(e*sin(b))/2.0),e);
r=a1*cos(b)/sqrt(1.0-e*e*sin(b)*sin(b));
k=a1*cos(bk)/sqrt(1.0-e*e*sin(bk)*sin(bk));
x=100.0/m_M*k*log(U);
y=100.0/m_M*k*l;
m=n=k/r;
P=m*m;
m_List.InsertItem(i,""); //插入列表项
str[0].Format("%d",i+1); m_List.SetItemText(i,0,str[0]);
if(B<=0)
{
str[1].Format("S %d",(-1)*B); m_List.SetItemText(i,1,str[1]);
}
else
{
str[1].Format("N %d",B); m_List.SetItemText(i,1,str[1]);
}
if(L<0)
{
str[2].Format("W %d",(-1)*L); m_List.SetItemText(i,2,str[2]);
}
else
{
str[2].Format("E %d",L); m_List.SetItemText(i,2,str[2]);
}
str[3].Format("%.4f",x); m_List.SetItemText(i,3,str[3]);
str[4].Format("%.4f",y); m_List.SetItemText(i,4,str[4]);
str[5].Format("%.4f",m); m_List.SetItemText(i,5,str[5]);
str[6].Format("%.4f",n); m_List.SetItemText(i,6,str[6]);
str[7].Format("%.4f",P); m_List.SetItemText(i,7,str[7]);
str[8].Format("%.4f",w); m_List.SetItemText(i,8,str[8]);
i++;
}
}
UpdateData(false);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -