#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(); }