66 lines
1.1 KiB
C++
66 lines
1.1 KiB
C++
#include "stdafx.h"
|
|
#include "XGXGDlg.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CXGXGDlg, CDialog)
|
|
|
|
CXGXGDlg::CXGXGDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CXGXGDlg::IDD, pParent)
|
|
, m_dGradNew(0)
|
|
{
|
|
}
|
|
|
|
CXGXGDlg::~CXGXGDlg()
|
|
{
|
|
}
|
|
|
|
void CXGXGDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT1, m_dGrad);
|
|
DDX_Text(pDX, IDC_EDIT3, m_dGradNew);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CXGXGDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CXGXGDlg::OnBnClickedOk)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CXGXGDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CXGXGDlg::SetStartAndEndZ(double dSz,double dEz,double dXL)
|
|
{
|
|
//坡度:两点的高程差与其水平距离的百分比
|
|
m_dGradNew = (dEz - dSz) / dXL;
|
|
m_dGradNew *= 100.0;
|
|
m_dGrad = m_dGradNew;
|
|
}
|
|
|
|
void CXGXGDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
//要求坡度同符号
|
|
if ( m_dGradNew * m_dGrad < -1.e-10)
|
|
{
|
|
AfxMessageBox(_T("坡度不可以反向!"));
|
|
return;
|
|
}
|
|
|
|
OnOK();
|
|
}
|
|
|
|
bool CXGXGDlg::GetGrade(double& dGrade) const
|
|
{
|
|
dGrade = m_dGradNew;
|
|
if ( fabs(dGrade - m_dGrad) < 1.e-6)
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
} |