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