#include "stdafx.h" #include "OutDimSettingDlg.h" #include "TwtDef.h" #include "SelectBlkDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif COutDimSettingDlg::COutDimSettingDlg(CWnd* pParent /*=NULL*/) : CDialog(COutDimSettingDlg::IDD, pParent) { //{{AFX_DATA_INIT(COutDimSettingDlg) m_nDimTextPos = g_nAlignTypeForWellDim; m_iDimPipeLabelType = 0; m_iDimShortPipeLenType = 0; m_iDimPipeDnType = 1; m_iDimShortPipeDnType = 1; m_iDimPipeDrawType = 0; m_iDimPipeBaseLineAng = 0; m_sDimWellNameDist = _T(""); m_iDimPipeLenType = 5; m_iDimPipeGradientType = 1; m_iDimShortPipeGradientType = 0; m_iDimWellNamePos = 0; m_iDimWellNameAngle = 0; m_iDimWellEleLeadAngle = 1; m_bCheckEleType = FALSE; m_dDimWellNameDist = 1.5; m_iDimWellEleType = 0; m_iDimPipeLinePos = 0; //}}AFX_DATA_INIT } void COutDimSettingDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(COutDimSettingDlg) DDX_CBIndex(pDX, IDC_COMBO_TEXTPOS, m_nDimTextPos); DDX_CBIndex(pDX, IDC_COMBO_DIM_LABEL, m_iDimPipeLabelType); DDX_CBIndex(pDX, IDC_COMBO_DIM_SHORTLEN, m_iDimShortPipeLenType); DDX_CBIndex(pDX, IDC_COMBO_DN, m_iDimPipeDnType); DDX_CBIndex(pDX, IDC_COMBO_SHORTDN, m_iDimShortPipeDnType); DDX_Radio(pDX, IDC_RADIO_DRAW1, m_iDimPipeDrawType); DDX_Radio(pDX, IDC_RADIO_LINEANG, m_iDimPipeBaseLineAng); DDX_Control(pDX, IDC_LIST_ELETYPE, m_wndLstDimWellEleType); DDX_CBString(pDX, IDC_COMBO_WELLDIM_DIST, m_sDimWellNameDist); DDX_CBIndex(pDX, IDC_COMBO_DIM_LEN, m_iDimPipeLenType); DDX_CBIndex(pDX, IDC_COMBO_DIMGRADIENT, m_iDimPipeGradientType); DDX_CBIndex(pDX, IDC_COMBO_DIMGRADIENT2, m_iDimShortPipeGradientType); DDX_CBIndex(pDX, IDC_COMBO_WELLDIM_POS, m_iDimWellNamePos); DDX_Radio(pDX, IDC_RADIO_WELLDIM_ANGLE1, m_iDimWellNameAngle); DDX_Radio(pDX, IDC_RADIO_LEAD_ANGLE1, m_iDimWellEleLeadAngle); DDX_Check(pDX, IDC_CHECKELETYEP, m_bCheckEleType); DDX_Radio(pDX, IDC_RADIO_LINEPOS, m_iDimPipeLinePos); //}}AFX_DATA_MAP } void COutDimSettingDlg::UpDateDlgData(BOOL isChanged) { UpdateData(TRUE); CRegProperty regProp(GetRegLocation(), _T("TWTConfig")); if (isChanged) { g_nAlignTypeForWellDim = m_nDimTextPos; // zxl 2012.07.12 add // 变更管线标注方式 zxl 2012.12.18 modify // g_iDimPipeLen = m_iDimPipeLenType; // g_iDimPipeGradientType = m_iDimPipeGradientType; // if(g_iDimPipeGradientType == 12) //12表示不标注 // { // g_iDimPipeGradientType = -1; // } // g_iDimShortPipeGradientType = m_iDimShortPipeGradientType; // if (g_iDimShortPipeGradientType == 12) // { // g_iDimShortPipeGradientType = -1; // } g_nDimPipeGradientType = m_iDimPipeGradientType; g_nDimShortPipeGradientType = m_iDimShortPipeGradientType; g_nDimPipeDnType = m_iDimPipeDnType; g_nDimShortPipeDnType = m_iDimShortPipeDnType; g_iDimPipeLen = m_iDimPipeLenType; g_nDimShortPipeLenType = m_iDimShortPipeLenType; g_nDimPipeLabelType = m_iDimPipeLabelType; g_nDimPipeDrawType = m_iDimPipeDrawType; g_iDimWellNamePos = m_iDimWellNamePos; m_dDimWellNameDist = _tstof(m_sDimWellNameDist); g_dDimWellNameDist = m_dDimWellNameDist; g_iDimWellNameAngle = m_iDimWellNameAngle; g_iDimWellEleLeadAngle = m_iDimWellEleLeadAngle; g_iDimWellEleType = m_iDimWellEleType; g_bDimWellOnlyEle = m_bCheckEleType; g_iDimPipeLinePos = m_iDimPipeLinePos;// zxl 2013.06.24 add g_iDimPipeBaseLineAng = m_iDimPipeBaseLineAng;// zxl 2013.06.24 add ModifyDimWellEleType(); // 变更管线标注方式 zxl 2012.12.18 modify // regProp.SetValue(_T("DimPipeLen"),g_iDimPipeLen); // regProp.SetValue(_T("DimPipeGradientType"),g_iDimPipeGradientType); // regProp.SetValue(_T("DimShortPipeGradientType"),g_iDimShortPipeGradientType); regProp.SetValue(_T("DimPipeDnType"),g_nDimPipeDnType); regProp.SetValue(_T("DimShortPipeDnType"),g_nDimShortPipeDnType); regProp.SetValue(_T("DimPipeLen"),g_iDimPipeLen); regProp.SetValue(_T("DimShortPipeLenType"),g_nDimShortPipeLenType); regProp.SetValue(_T("DimPipeGradientType"),g_nDimPipeGradientType); regProp.SetValue(_T("DimShortPipeGradientType"),g_nDimShortPipeGradientType); regProp.SetValue(_T("DimPipeLabelType"),g_nDimPipeLabelType); regProp.SetValue(_T("DimPipeDrawType"),g_nDimPipeDrawType); regProp.SetValue(_T("DimWellNamePos"),g_iDimWellNamePos); regProp.SetValue(_T("DimWellNameDist"),g_dDimWellNameDist); regProp.SetValue(_T("DimWellNameAngle"),g_iDimWellNameAngle); regProp.SetValue(_T("DimWellEleLeadAngle"),g_iDimWellEleLeadAngle); regProp.SetValue(_T("DimWellEleType"),g_iDimWellEleType); regProp.SetValue(_T("IsDimWellOnlyEle"), g_bDimWellOnlyEle); regProp.SetValue(_T("AlignTypeForWellDim"), g_nAlignTypeForWellDim);// zxl 2012.07.12 add regProp.SetValue(_T("DimPipeLinePos"), g_iDimPipeLinePos);// zxl 2013.06.24 add regProp.SetValue(_T("DimPipeBaseLineAng"), g_iDimPipeBaseLineAng);// zxl 2013.06.24 add } else { // 变更管线标注方式 zxl 2012.12.18 modify // regProp.GetValue(_T("DimPipeLen"),m_iDimPipeLenType); // regProp.GetValue(_T("DimPipeGradientType"),m_iDimPipeGradientType); // regProp.GetValue(_T("DimShortPipeGradientType"),m_iDimShortPipeGradientType); regProp.GetValue(_T("DimPipeDnType"),m_iDimPipeDnType); regProp.GetValue(_T("DimShortPipeDnType"),m_iDimShortPipeDnType); regProp.GetValue(_T("DimPipeLen"),m_iDimPipeLenType); regProp.GetValue(_T("DimShortPipeLenType"),m_iDimShortPipeLenType); regProp.GetValue(_T("DimPipeGradientType"),m_iDimPipeGradientType); regProp.GetValue(_T("DimShortPipeGradientType"),m_iDimShortPipeGradientType); regProp.GetValue(_T("DimPipeLabelType"),m_iDimPipeLabelType); regProp.GetValue(_T("DimShortPipeLabelType"),m_iDimShortPipeLabelType); regProp.GetValue(_T("DimPipeDrawType"),m_iDimPipeDrawType); regProp.GetValue(_T("DimWellNamePos"),m_iDimWellNamePos); regProp.GetValue(_T("DimWellNameDist"),m_dDimWellNameDist); regProp.GetValue(_T("DimWellNameAngle"),m_iDimWellNameAngle); regProp.GetValue(_T("DimWellEleLeadAngle"),m_iDimWellEleLeadAngle); regProp.GetValue(_T("DimWellEleType"),m_iDimWellEleType); regProp.GetValue(_T("IsDimWellOnlyEle"), m_bCheckEleType); regProp.GetValue(_T("AlignTypeForWellDim"), m_nDimTextPos);// zxl 2012.07.12 add regProp.GetValue(_T("DimPipeLinePos"),m_iDimPipeLinePos);// zxl 2013.06.24 add regProp.GetValue(_T("DimPipeBaseLineAng"),m_iDimPipeBaseLineAng);// zxl 2013.06.24 add // 变更管线标注方式 zxl 2012.12.18 modify // g_iDimPipeLen = m_iDimPipeLenType; // // g_iDimPipeGradientType = m_iDimPipeGradientType; // if (m_iDimPipeGradientType == -1) // { // m_iDimPipeGradientType = 12; // } // // g_iDimShortPipeGradientType = m_iDimShortPipeGradientType; // if (m_iDimShortPipeGradientType == -1) // { // m_iDimShortPipeGradientType = 12; // } g_nDimPipeGradientType = m_iDimPipeGradientType; g_nDimShortPipeGradientType = m_iDimShortPipeGradientType; g_nDimPipeDnType = m_iDimPipeDnType; g_nDimShortPipeDnType = m_iDimShortPipeDnType; g_iDimPipeLen = m_iDimPipeLenType; g_nDimShortPipeLenType = m_iDimShortPipeLenType; g_nDimPipeLabelType = m_iDimPipeLabelType; g_nDimPipeDrawType = m_iDimPipeDrawType; g_iDimWellNamePos = m_iDimWellNamePos; g_dDimWellNameDist = m_dDimWellNameDist; m_sDimWellNameDist.Format(_T("%.3f"), m_dDimWellNameDist); g_iDimWellNameAngle = m_iDimWellNameAngle; g_iDimWellEleLeadAngle = m_iDimWellEleLeadAngle; g_iDimWellEleType = m_iDimWellEleType; g_bDimWellOnlyEle = m_bCheckEleType; g_nAlignTypeForWellDim = m_nDimTextPos; g_iDimPipeLinePos = m_iDimPipeLinePos;// zxl 2013.06.24 add g_iDimPipeBaseLineAng = m_iDimPipeBaseLineAng;// zxl 2013.06.24 add ModifyDimWellEleType(FALSE); m_wndLstDimWellEleType.SetCurSel(m_iDimWellEleType); } UpdateData(FALSE); } BEGIN_MESSAGE_MAP(COutDimSettingDlg, CDialog) //{{AFX_MSG_MAP(COutDimSettingDlg) ON_WM_PAINT() ON_LBN_SELCHANGE(IDC_LIST_ELETYPE, OnSelchangeListEletype) ON_BN_CLICKED(IDC_RADIO_LEAD_ANGLE1, OnRadioLeadAngle) ON_BN_CLICKED(IDC_RADIO_LEAD_ANGLE2, OnRadioLeadAngle2) ON_CBN_SELCHANGE(IDC_COMBO_DIMGRADIENT, OnSelchangeComboDimgradient) ON_BN_CLICKED(IDC_RADIO_DRAW1, OnRadioDraw1) ON_BN_CLICKED(IDC_RADIO_DRAW2, OnRadioDraw2) ON_CBN_SELCHANGE(IDC_COMBO_DN, OnEditchangeComboDn) ON_CBN_SELCHANGE(IDC_COMBO_DIM_LEN, OnEditchangeComboDimLen) ON_CBN_SELCHANGE(IDC_COMBO_DIM_LABEL, OnEditchangeComboDimLabel) ON_CBN_SELCHANGE(IDC_COMBO_SHORTDN, OnEditchangeComboShortdn) ON_CBN_SELCHANGE(IDC_COMBO_DIMGRADIENT2, OnEditchangeComboDimgradient2) ON_CBN_SELCHANGE(IDC_COMBO_DIM_SHORTLEN, OnEditchangeComboDimShortlen) ON_BN_CLICKED(IDC_CHECKELETYEP, OnCheckElevType) ON_BN_CLICKED(IDC_RADIO_LINEPOS, OnRadioLinepos) ON_BN_CLICKED(IDOK, OnOutDimSettingOK) ON_BN_CLICKED(IDC_RADIO3, OnRadio3) //}}AFX_MSG_MAP END_MESSAGE_MAP() BOOL COutDimSettingDlg::OnInitDialog() { CDialog::OnInitDialog(); m_wndLstDimWellEleType.InsertString(0,_T("样式一")); m_wndLstDimWellEleType.InsertString(1,_T("样式二")); m_wndLstDimWellEleType.InsertString(2,_T("样式三")); m_wndLstDimWellEleType.InsertString(3,_T("样式四")); m_wndLstDimWellEleType.SetCurSel(0); UpDateDlgData(FALSE); SetLabelBarStatus(); GetPipeDimPreview(); GetShortPipeDimPreview(); OnSelchangeComboDimgradient(); DimPipeLineAngChange(); return TRUE; } void COutDimSettingDlg::OnOutDimSettingOK() { UpDateDlgData(TRUE); CDialog::OnOK(); } void COutDimSettingDlg::OpenSlideEleType() { CWnd *Pwnd = GetDlgItem(IDC_ELETYPE_PREVIEW); m_iDimWellEleType = m_wndLstDimWellEleType.GetCurSel(); if (m_iDimWellEleType == 0) //管底标注样式 { DrawSlide(_T("TWT(WELLDIM2)"),Pwnd); } else if (m_iDimWellEleType == 1) { DrawSlide(_T("TWT(WELLDIM6)"),Pwnd); } else if (m_iDimWellEleType == 2) { DrawSlide(_T("TWT(WELLDIM8)"),Pwnd); } else if (m_iDimWellEleType == 3) { DrawSlide(_T("TWT(WELLDIM9)"),Pwnd); } } void COutDimSettingDlg::OnPaint() { CPaintDC dc(this); OpenSlideEleType(); OpenSlideEleAngle(); } void COutDimSettingDlg::OnSelchangeListEletype() { OpenSlideEleType(); } void COutDimSettingDlg::OpenSlideEleAngle() { CWnd *pWnd1 = GetDlgItem(IDC_PREVIEW); if (pWnd1 == NULL) { return; } if (m_iDimWellEleLeadAngle == 0) //管底标注引线角度 { DrawSlide(_T("TWT(WELLDIMANGLE2)"),pWnd1); } else if(m_iDimWellEleLeadAngle == 1) { DrawSlide(_T("TWT(WELLDIMANGLE1)"),pWnd1); } } void COutDimSettingDlg::OnRadioLeadAngle() { UpdateData(TRUE); OpenSlideEleAngle(); DimPipeLineAngChange(); } void COutDimSettingDlg::OnRadioLeadAngle2() { UpdateData(TRUE); OpenSlideEleAngle(); DimPipeLineAngChange(); } void COutDimSettingDlg::ModifyDimWellEleType(BOOL bVal) { if (bVal) { if (m_iDimWellEleType == 0) { g_iDimWellEleType = 1; } else if (m_iDimWellEleType == 1) { g_iDimWellEleType = 5; } else if (m_iDimWellEleType == 2) { g_iDimWellEleType = 7; } else if (m_iDimWellEleType == 3) { g_iDimWellEleType = 8; } } else { if (g_iDimWellEleType == 1) { m_iDimWellEleType = 0; } else if (g_iDimWellEleType == 5) { m_iDimWellEleType = 1; } else if (g_iDimWellEleType == 7) { m_iDimWellEleType = 2; } else if (g_iDimWellEleType == 8) { m_iDimWellEleType = 3; } } } void COutDimSettingDlg::OnSelchangeComboDimgradient() { UpdateData(TRUE); GetPipeDimPreview(); UpdateData(FALSE); } void COutDimSettingDlg::SetLabelBarStatus() { CWnd *pWnd1 = GetDlgItem(IDC_COMBO_DIM_LABEL); if (pWnd1 == NULL) { return; } UpdateData(TRUE); if (m_iDimPipeDrawType == 0) { pWnd1->EnableWindow(TRUE); } else { pWnd1->EnableWindow(FALSE); } } void COutDimSettingDlg::OnRadioDraw1() { SetLabelBarStatus(); GetPipeDimPreview(); GetShortPipeDimPreview(); } void COutDimSettingDlg::OnRadioDraw2() { SetLabelBarStatus(); GetPipeDimPreview(); GetShortPipeDimPreview(); } void COutDimSettingDlg::GetPipeDimPreview() { CString sText; CString sLen, sDn, sGradient, sLabel; CWnd *pWnd1 = GetDlgItem(IDC_COMBO_DIMGRADIENT); CWnd *pWnd2 = GetDlgItem(IDC_COMBO_DIM_LEN); CWnd *pWnd3 = GetDlgItem(IDC_COMBO_DN); CWnd *pWnd4 = GetDlgItem(IDC_COMBO_DIM_LABEL); if (pWnd1 == NULL || pWnd2 == NULL || pWnd3 == NULL || pWnd4 == NULL) { return; } if (m_iDimPipeDnType != 0) { pWnd3->GetWindowText(sDn); } if (m_iDimPipeLenType != 0) { pWnd2->GetWindowText(sLen); } if (m_iDimPipeGradientType != 0) { pWnd1->GetWindowText(sGradient); } pWnd4->GetWindowText(sLabel); if (sLabel.Compare(_T("空格")) == 0) { sLabel = _T(" "); } if (m_iDimPipeDrawType == 1) { sLabel = _T("\n"); } else { sText = _T("\n") + sText; } sText += sDn; if (!sDn.IsEmpty() && (!sLen.IsEmpty() || !sGradient.IsEmpty())) { sText += sLabel; } sText += sGradient; if (!sLen.IsEmpty() && !sGradient.IsEmpty()) { sText += sLabel; sText += sLen; } else if (sGradient.IsEmpty()) { sText += sLen; } CWnd *pWnd5 = GetDlgItem(IDC_STATIC_PREVIEW1); if (pWnd5 != NULL) { pWnd5->SetWindowText(sText); } } void COutDimSettingDlg::GetShortPipeDimPreview() { CString sText; CString sLen, sDn, sGradient, sLabel; CWnd *pWnd1 = GetDlgItem(IDC_COMBO_DIMGRADIENT2); CWnd *pWnd2 = GetDlgItem(IDC_COMBO_DIM_SHORTLEN); CWnd *pWnd3 = GetDlgItem(IDC_COMBO_SHORTDN); CWnd *pWnd4 = GetDlgItem(IDC_COMBO_DIM_LABEL); if (pWnd1 == NULL || pWnd2 == NULL || pWnd3 == NULL || pWnd4 == NULL) { return; } if (m_iDimShortPipeDnType != 0) { pWnd3->GetWindowText(sDn); } if (m_iDimShortPipeLenType != 0) { pWnd2->GetWindowText(sLen); } if (m_iDimShortPipeGradientType != 0) { pWnd1->GetWindowText(sGradient); } pWnd4->GetWindowText(sLabel); if (sLabel.Compare(_T("空格")) == 0) { sLabel = _T(" "); } if (m_iDimPipeDrawType == 1) { sLabel = _T("\n"); } sText = sDn; if (!sDn.IsEmpty() && (!sLen.IsEmpty() || !sGradient.IsEmpty())) { sText += sLabel; } sText += sGradient; if (!sLen.IsEmpty() && !sGradient.IsEmpty()) { sText += sLabel; sText += sLen; } else if (sGradient.IsEmpty()) { sText += sLen; } CWnd *pWnd5 = GetDlgItem(IDC_STATIC_PREVIEW2); if (pWnd5 != NULL) { pWnd5->SetWindowText(sText); } } void COutDimSettingDlg::OnEditchangeComboDn() { UpdateData(TRUE); GetPipeDimPreview(); UpdateData(FALSE); } void COutDimSettingDlg::OnEditchangeComboDimLen() { UpdateData(TRUE); GetPipeDimPreview(); UpdateData(FALSE); } void COutDimSettingDlg::OnEditchangeComboDimLabel() { UpdateData(TRUE); GetPipeDimPreview(); GetShortPipeDimPreview(); UpdateData(FALSE); } void COutDimSettingDlg::OnEditchangeComboShortdn() { UpdateData(TRUE); GetShortPipeDimPreview(); UpdateData(FALSE); } void COutDimSettingDlg::OnEditchangeComboDimgradient2() { UpdateData(TRUE); GetShortPipeDimPreview(); UpdateData(FALSE); } void COutDimSettingDlg::OnEditchangeComboDimShortlen() { UpdateData(TRUE); GetShortPipeDimPreview(); UpdateData(FALSE); } void COutDimSettingDlg::OnCheckElevType() { DimPipeLineAngChange(); } void COutDimSettingDlg::DimPipeLineAngChange() { UpdateData(TRUE); CWnd *pWnd = GetDlgItem(IDC_RADIO3); if (pWnd == NULL) { return; } if (m_iDimWellEleLeadAngle == 0) { pWnd->EnableWindow(FALSE); m_iDimPipeLinePos = 0; } else { pWnd->EnableWindow(TRUE); } pWnd = GetDlgItem(IDC_RADIO_ANGX); if (pWnd == NULL) { return; } if (m_iDimPipeLinePos == 0 && !m_bCheckEleType) { pWnd->EnableWindow(FALSE); m_iDimPipeBaseLineAng = 0; } else { pWnd->EnableWindow(TRUE); } UpdateData(FALSE); } void COutDimSettingDlg::OnRadioLinepos() { DimPipeLineAngChange(); } void COutDimSettingDlg::OnRadio3() { DimPipeLineAngChange(); }