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

209 lines
4.8 KiB
C++

#include "StdAfx.h"
#include "resource.h"
#include "KTPIDPipeParamDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#ifndef WM_SHOWPARAMTEXT
#define WM_SHOWPARAMTEXT (WM_USER + 0x1001)
#endif
KTPIDPipeParamDlg::KTPIDPipeParamDlg(CWnd* pParent /*=NULL*/)
: CDialog(KTPIDPipeParamDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(KTPIDPipeParamDlg)
m_sNo = _T("");
m_sZone = _T("");
m_sSpec = _T("");
m_dHThick = 10.0;
m_dSpace = 100.0;
m_bHeat = FALSE;
m_bCover = FALSE;
//}}AFX_DATA_INIT
m_pPipeParam = NULL;
}
void KTPIDPipeParamDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(KTPIDPipeParamDlg)
DDX_Control(pDX, IDC_EDITSPACE, m_wndEditCSpace);
DDX_Control(pDX, IDC_EDITHTHICK, m_wndEditHThick);
DDX_Control(pDX, IDC_TABSETTING, m_wndTabCtrl);
DDX_Text(pDX, IDC_EDITSERNO, m_sNo);
DDX_Text(pDX, IDC_EDITZONE, m_sZone);
DDX_Text(pDX, IDC_STATICSPEC, m_sSpec);
DDX_Text(pDX, IDC_EDITHTHICK, m_dHThick);
DDX_Text(pDX, IDC_EDITSPACE, m_dSpace);
DDX_Check(pDX, IDC_CHECKHEAT, m_bHeat);
DDX_Check(pDX, IDC_CHECKCOVER, m_bCover);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(KTPIDPipeParamDlg, CDialog)
//{{AFX_MSG_MAP(KTPIDPipeParamDlg)
ON_EN_CHANGE(IDC_EDITSERNO, OnChangeEditserno)
ON_EN_CHANGE(IDC_EDITZONE, OnChangeEditzone)
ON_MESSAGE(WM_SHOWPARAMTEXT,ShowParamToText)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_STATIC_COLOR, OnStaticColor)
ON_BN_CLICKED(IDC_CHECKCOVER, OnCheckcover)
ON_BN_CLICKED(IDC_CHECKHEAT, OnCheckheat)
ON_BN_CLICKED(IDC_BUTTON1, OnAddPipeLine)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void KTPIDPipeParamDlg::SetPIDParam(PID::PIDPipeParam* pPipeParam)
{
m_pPipeParam = pPipeParam;
m_wndPIDPipePage.SetPIDParam(pPipeParam);
}
BOOL KTPIDPipeParamDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_wndTabCtrl.InsertItem(0,_T("参数"));
m_wndPIDPipePage.Create(IDD_PIDPIPEPAGEDLG,&m_wndTabCtrl);
m_wndPIDPipePage.SetOwner(&m_wndTabCtrl);
CWnd* pFrame = GetDlgItem(IDC_STATIC_FRAME);
if (pFrame != NULL)
{
CRect rcFrame;
pFrame->GetWindowRect(&rcFrame);
m_wndTabCtrl.ScreenToClient(&rcFrame);
m_wndPIDPipePage.MoveWindow(&rcFrame);
pFrame->ShowWindow(SW_HIDE);
}
m_wndPIDPipePage.ShowWindow(SW_SHOW);
if (m_pPipeParam != NULL)
{
m_sNo = m_pPipeParam->m_pszNo;
m_sZone = m_pPipeParam->m_pszZone;
m_dSpace = m_pPipeParam->m_dCoverSpace;
m_dHThick = m_pPipeParam->m_dHeatThick;
if (m_pPipeParam->m_nTraType == 1 || m_pPipeParam->m_nTraType == 3) m_bHeat = TRUE;
if (m_pPipeParam->m_nTraType > 1) m_bCover = TRUE;
}
m_wndEditCSpace.EnableWindow(m_bCover);
m_wndEditHThick.EnableWindow(m_bHeat);
UpdateData(FALSE);
ShowParamToText(0,0);
return TRUE;
}
void KTPIDPipeParamDlg::OnOK()
{
if (!m_wndPIDPipePage.UpdateDataEx())
{
AfxMessageBox(_T("参数没有正确配置!"));
return;
}
UpdateData(TRUE);
_tcscpy(m_pPipeParam->m_pszNo,m_sNo);
_tcscpy(m_pPipeParam->m_pszZone,m_sZone);
m_pPipeParam->m_dCoverSpace = m_dSpace;
m_pPipeParam->m_dHeatThick = m_dHThick;
m_pPipeParam->m_nTraType = 0;
int nHeat = 0,nCover = 0;
if (m_bHeat) nHeat = 1;
if (m_bCover) nCover = 2;
m_pPipeParam->m_nTraType = nHeat + nCover;
CString sLineNo;
sLineNo.Format(_T("%s-%s"),m_pPipeParam->m_pszMedia,m_pPipeParam->m_pszNo);
_tcscpy(m_pPipeParam->m_pszLineNo,sLineNo);
CDialog::OnOK();
}
void KTPIDPipeParamDlg::OnChangeEditserno()
{
UpdateData();
ShowParamToText(0,0);
}
void KTPIDPipeParamDlg::OnChangeEditzone()
{
UpdateData();
ShowParamToText(0,0);
}
LRESULT KTPIDPipeParamDlg::ShowParamToText(WPARAM wparam,LPARAM lparam)
{
UpdateData(TRUE);
CString sText,sDN;
sText.Format(_T("%d"),(int)m_pPipeParam->m_dDN);
sDN = sText;
//Spec
m_sSpec = m_sZone + _T("-") + sDN + _T("-") + m_sNo;
UpdateData(FALSE);
return 0;
}
HBRUSH KTPIDPipeParamDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_STATIC)
{
if (pWnd != NULL && pWnd->GetDlgCtrlID() == IDC_STATIC_COLOR)
{
if (m_pPipeParam != NULL)
{
COLORREF crColor = RGB(255,255,255);
if (m_pPipeParam->m_nPipeColor == PID::kColorByLayer)
{
crColor = RGB(255,255,255);
}
else
{
crColor = acedGetRGB(m_pPipeParam->m_nPipeColor);
}
CRect rc;
pWnd->GetClientRect(rc);
pDC->FillSolidRect(rc,crColor);
}
}
}
return hbr;
}
void KTPIDPipeParamDlg::OnStaticColor()
{
acedSetColorDialog(m_pPipeParam->m_nPipeColor,Adesk::kFalse,m_pPipeParam->m_nPipeColor);
if (m_pPipeParam->m_nPipeColor == 0)
m_pPipeParam->m_nPipeColor = PID::kColorByLayer;
Invalidate();
}
void KTPIDPipeParamDlg::OnCheckcover()
{
UpdateData();
m_wndEditCSpace.EnableWindow(m_bCover);
}
void KTPIDPipeParamDlg::OnCheckheat()
{
UpdateData();
m_wndEditHThick.EnableWindow(m_bHeat);
}
void KTPIDPipeParamDlg::OnAddPipeLine()
{
m_wndPIDPipePage.OnAddPipeLine();
}