Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

282 lines
4.9 KiB
C++

#include "stdafx.h"
#include "GradientEleCalcDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern BOOL IsInSamePipeSys(SSearchPipeList *pListAll, Entity &ent);
extern double GetPipeEle(Entity &ent, BOOL bUp);
double CGradientEleCalcDlg::m_dWndEdtGrad = 0.003;
CGradientEleCalcDlg::CGradientEleCalcDlg(CWnd* pParent /*=NULL*/)
: CDialog(CGradientEleCalcDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CGradientEleCalcDlg)
m_bWndChkUpEle = FALSE;
m_bWndChkLowEle = FALSE;
m_bWndChkGradient = TRUE;
m_dWndEdtLowEle = 0.0;
m_dWndEdtUpEle = 0.0;
//}}AFX_DATA_INIT
m_lstPipeSys = NULL;
}
void CGradientEleCalcDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CGradientEleCalcDlg)
DDX_Check(pDX, IDC_CHECK_UPELE, m_bWndChkUpEle);
DDX_Check(pDX, IDC_CHECK_LOWELE, m_bWndChkLowEle);
DDX_Check(pDX, IDC_CHECK_GRADIENT, m_bWndChkGradient);
DDX_Text(pDX, IDC_EDIT_GRADIENT, m_dWndEdtGrad);
DDX_Text(pDX, IDC_EDIT_LOWELEVATION, m_dWndEdtLowEle);
DDX_Text(pDX, IDC_EDIT_UPELEVATION, m_dWndEdtUpEle);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CGradientEleCalcDlg, CDialog)
//{{AFX_MSG_MAP(CGradientEleCalcDlg)
ON_BN_CLICKED(IDC_CHECK_UPELE, OnCheckUpEle)
ON_BN_CLICKED(IDC_CHECK_LOWELE, OnCheckLowEle)
ON_BN_CLICKED(IDC_CHECK_GRADIENT, OnCheckGradient)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CGradientEleCalcDlg::SetUpElevation(BOOL bVal)
{
m_bUpElevation = bVal;
}
BOOL CGradientEleCalcDlg::GetUpElevation()
{
return m_bUpElevation;
}
BOOL CGradientEleCalcDlg::GetChkUpEle()
{
return m_bWndChkUpEle;
}
BOOL CGradientEleCalcDlg::GetChkLowEle()
{
return m_bWndChkLowEle;
}
double CGradientEleCalcDlg::GetGradient()
{
return m_dGradient;
}
void CGradientEleCalcDlg::SetGradient(double dGrad)
{
m_dWndEdtGrad = dGrad;
m_dGradient = dGrad;
}
double CGradientEleCalcDlg::GetLowEle()
{
return m_dLowEle;
}
void CGradientEleCalcDlg::SetLowEle(double dEle)
{
m_dWndEdtLowEle = dEle;
m_dLowEle = dEle;
}
double CGradientEleCalcDlg::GetUpEle()
{
return m_dUpEle;
}
void CGradientEleCalcDlg::SetUpEle(double dEle)
{
m_dWndEdtUpEle = dEle;
m_dUpEle = dEle;
}
void CGradientEleCalcDlg::GetEnt(Entity& ent)
{
ent = m_ent;
}
void CGradientEleCalcDlg::SetPipeSys(SSearchPipeList *pLst)
{
m_lstPipeSys = pLst;
}
BOOL CGradientEleCalcDlg::GetChkGradient()
{
return m_bWndChkGradient;
}
BOOL CGradientEleCalcDlg::OnInitDialog()
{
CDialog::OnInitDialog();
if (m_bUpElevation)
{
CWnd *pWnd = GetDlgItem(IDC_CHECK_UPELE);
if (pWnd != NULL)
{
pWnd->ShowWindow(SW_HIDE);
}
OnCheckLowEle();
}
else
{
CWnd *pWnd = GetDlgItem(IDC_CHECK_LOWELE);
if (pWnd != NULL)
{
pWnd->ShowWindow(SW_HIDE);
}
OnCheckUpEle();
}
OnCheckGradient();
return TRUE;
}
void CGradientEleCalcDlg::OnCheckUpEle()
{
UpdateData(TRUE);
CWnd *pWnd1 = GetDlgItem(IDC_CHECK_GRADIENT);
CWnd *pWnd2 = GetDlgItem(IDC_EDIT_GRADIENT);
CWnd *pWnd3 = GetDlgItem(IDC_EDIT_UPELEVATION);
if (m_bWndChkUpEle)
{
if (pWnd1 != NULL)
{
pWnd1->EnableWindow(FALSE);
}
if (pWnd2 != NULL)
{
pWnd2->EnableWindow(FALSE);
}
if (pWnd3 != NULL)
{
pWnd3->EnableWindow(TRUE);
}
HideDialog(this, TRUE);
RBList rbMask(RTDXF0, _T("ATS_PIPE,ATS_PIPECANAL"), NULL);
while (SelectEntity(_T("\n请选择上游端点位置<退出>"), m_ent, rbMask) == RTNORM)
{
if (!IsInSamePipeSys(m_lstPipeSys, m_ent))
{
adsout << _T("\n上下游端点不在同一管道系统或上游端点不是末端管线!");
continue;
}
break;
}
if (m_ent.Is(_T("ATS_PIPE")))
{
m_dWndEdtUpEle = GetPipeEle(m_ent, TRUE);
}
HideDialog(this, FALSE);
UpdateData(FALSE);
}
else
{
if (pWnd1 != NULL)
{
pWnd1->EnableWindow(TRUE);
}
if (pWnd2 != NULL)
{
pWnd2->EnableWindow(TRUE);
}
if (pWnd3 != NULL)
{
pWnd3->EnableWindow(FALSE);
}
OnCheckGradient();
}
}
void CGradientEleCalcDlg::OnCheckLowEle()
{
UpdateData(TRUE);
CWnd *pWnd1 = GetDlgItem(IDC_CHECK_GRADIENT);
CWnd *pWnd2 = GetDlgItem(IDC_EDIT_GRADIENT);
CWnd *pWnd3 = GetDlgItem(IDC_EDIT_LOWELEVATION);
if (m_bWndChkLowEle)
{
if (pWnd1 != NULL)
{
pWnd1->EnableWindow(FALSE);
}
if (pWnd2 != NULL)
{
pWnd2->EnableWindow(FALSE);
}
if (pWnd3 != NULL)
{
pWnd3->EnableWindow(TRUE);
}
}
else
{
if (pWnd1 != NULL)
{
pWnd1->EnableWindow(TRUE);
}
if (pWnd2 != NULL)
{
pWnd2->EnableWindow(TRUE);
}
if (pWnd3 != NULL)
{
pWnd3->EnableWindow(FALSE);
}
OnCheckGradient();
}
}
void CGradientEleCalcDlg::OnCheckGradient()
{
UpdateData(TRUE);
CWnd *pWnd = GetDlgItem(IDC_EDIT_GRADIENT);
if (m_bWndChkGradient)
{
if (pWnd != NULL)
{
pWnd->EnableWindow(FALSE);
}
}
else
{
if (pWnd != NULL)
{
pWnd->EnableWindow(TRUE);
}
}
}
void CGradientEleCalcDlg::OnOK()
{
UpdateData(TRUE);
m_dGradient = m_dWndEdtGrad;
m_dUpEle = m_dWndEdtUpEle;
m_dLowEle = m_dWndEdtLowEle;
CDialog::OnOK();
}