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

615 lines
15 KiB
C++

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