// DlgSignalReadSignal.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ReviewSystemSetting.h" #include "DlgSignalReadSignal.h" #include "ReviewSystemSettingDlg.h" // CDlgSignalReadSignal ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDlgSignalReadSignal, CDialog) CDlgSignalReadSignal::CDlgSignalReadSignal(CWnd* pParent /*=NULL*/) : CDialog(CDlgSignalReadSignal::IDD, pParent) , m_nSignalReadSignalCount(0) { } CDlgSignalReadSignal::~CDlgSignalReadSignal() { } void CDlgSignalReadSignal::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_READ_SIGNAL_COUNT, m_nSignalReadSignalCount); DDX_Control(pDX, IDC_CHECK_SYS_SIGNAL_READ_SIGNAL_USE_CONSECUTIVE_ADDRESS, m_ctrlButtonUseConsecutiveAddress); DDX_Control(pDX, IDC_GRID_SIGNAL_READ_SIGNAL_INFO, m_ctrlGridSignalReadSignalInfo); } BEGIN_MESSAGE_MAP(CDlgSignalReadSignal, CDialog) ON_EN_CHANGE(IDC_EDIT_SYS_SIGNAL_READ_SIGNAL_COUNT, &CDlgSignalReadSignal::OnEnChangeEditSysSignalReadSignalCount) END_MESSAGE_MAP() // CDlgSignalReadSignal ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CDlgSignalReadSignal::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. InitSignalReadSignalInfoGridControl(); FillSignalReadSignalInfo(); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } BOOL CDlgSignalReadSignal::PreTranslateMessage(MSG* pMsg) { // TODO: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. if( pMsg->message == WM_KEYDOWN ) { if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE ) { ::TranslateMessage(pMsg); ::DispatchMessage(pMsg); return TRUE; } } return CDialog::PreTranslateMessage(pMsg); } void CDlgSignalReadSignal::OnEnChangeEditSysSignalReadSignalCount() { // TODO: RICHEDIT ÄÁÆ®·ÑÀÎ °æ¿ì, ÀÌ ÄÁÆ®·ÑÀº // CDialog::OnInitDialog() ÇÔ¼ö¸¦ ÀçÁöÁ¤ //ÇÏ°í ¸¶½ºÅ©¿¡ OR ¿¬»êÇÏ¿© ¼³Á¤µÈ ENM_CHANGE Ç÷¡±×¸¦ ÁöÁ¤ÇÏ¿© CRichEditCtrl().SetEventMask()¸¦ È£ÃâÇÏÁö ¾ÊÀ¸¸é // ÀÌ ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³»Áö ¾Ê½À´Ï´Ù. // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. UpdateData(TRUE); int i, nRowIdx, nColIdx; int nWidth, nMargin, nDataColumnWidth; CString strTemp; CRect rect; m_ctrlGridSignalReadSignalInfo.GetWindowRect(&rect); m_ctrlGridSignalReadSignalInfo.SetRowCount(m_nSignalReadSignalCount + 1); nWidth = m_ctrlGridSignalReadSignalInfo.GetColumnWidth(0); nMargin = 5; nDataColumnWidth = rect.Width() - nWidth - nMargin; if(m_nSignalReadSignalCount > 0) { GV_ITEM Item; Item.mask = GVIF_TEXT; nRowIdx = 1; nColIdx = 0; nDataColumnWidth = nDataColumnWidth / m_nSignalReadSignalCount; for(i = 0; i < m_nSignalReadSignalCount; i++) { //À妽º Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridSignalReadSignalInfo.SetItem(&Item); } } } void CDlgSignalReadSignal::InitSignalReadSignalInfoGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols; int nMargin, nDefaultColumnWidth; CString strTemp; CRect rect; m_ctrlGridSignalReadSignalInfo.GetWindowRect(&rect); nMargin = 5; nDefaultColumnWidth = (rect.Width() - nMargin) / (SIGNAL_READ_SIGNAL_INFO_GRID_COL_COUNT + 1); nRows = m_nSignalReadSignalCount + 1; nCols = SIGNAL_READ_SIGNAL_INFO_GRID_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridSignalReadSignalInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridSignalReadSignalInfo.SetRowCount(nRows); m_ctrlGridSignalReadSignalInfo.SetColumnCount(nCols); m_ctrlGridSignalReadSignalInfo.SetFixedRowCount(nFixRows); m_ctrlGridSignalReadSignalInfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Index"));//_T("À妽º")); Item.strText = strTemp; m_ctrlGridSignalReadSignalInfo.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridSignalReadSignalInfo.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Address"));//_T("ÁÖ¼Ò")); Item.strText = strTemp; m_ctrlGridSignalReadSignalInfo.SetColumnWidth(nColIdx++, nDefaultColumnWidth * 2); m_ctrlGridSignalReadSignalInfo.SetItem(&Item); } void CDlgSignalReadSignal::FillSignalReadSignalInfo() { CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; CSignalControlInfo *pSignalInfo = pDlg->GetSys_SignalInfo(); if (pSignalInfo==NULL) return; CString strItemText = _T(""); int nSignalReadSignalCount = pSignalInfo->GetReadSignalAddressCount(); if(nSignalReadSignalCount > 0) { int nRowIdx = 1; m_nSignalReadSignalCount = nSignalReadSignalCount; UpdateData(FALSE); OnEnChangeEditSysSignalReadSignalCount(); BOOL bUseConsecutiveAddress = pSignalInfo->GetUseContinuousReadAddress(); m_ctrlButtonUseConsecutiveAddress.SetCheck(bUseConsecutiveAddress); for(int i=0; iGetReadSignalAddress(i); if (strReadSignalAddr.Compare(_T(""))==0) continue; //1. ÁÖ¼Ò int nColIdx = 1; strItemText.Format(_T("%s"), strReadSignalAddr); m_ctrlGridSignalReadSignalInfo.SetItemText(nRowIdx, nColIdx, strItemText); nRowIdx++; } } else { ResetSignalReadSignalInfoGrid(); } } void CDlgSignalReadSignal::ResetSignalReadSignalInfoGrid() { int i, nRowIdx, nColIdx; CString strItemText; m_nSignalReadSignalCount = SIGNAL_READ_SIGNAL_INFO_GRID_DEFAULT_ROW_COUNT; UpdateData(FALSE); OnEnChangeEditSysSignalReadSignalCount(); nRowIdx = 1; m_ctrlButtonUseConsecutiveAddress.SetCheck(FALSE); for(i = 0; i < SIGNAL_READ_SIGNAL_INFO_GRID_DEFAULT_ROW_COUNT; i++) { nColIdx = 1; switch(i) { case 0: default: strItemText = _T(""); m_ctrlGridSignalReadSignalInfo.SetItemText(nRowIdx, nColIdx++, strItemText); m_ctrlGridSignalReadSignalInfo.SetItemText(nRowIdx, nColIdx++, strItemText); break; } nRowIdx++; } } void CDlgSignalReadSignal::UpdateDialogData() { FillSignalReadSignalInfo(); Invalidate(TRUE); } void CDlgSignalReadSignal::GetSignalReadSignal(CSignalControlInfo &signalInfo) { UpdateData(TRUE); signalInfo.SetUseContinuousReadAddress(m_ctrlButtonUseConsecutiveAddress.GetCheck()); signalInfo.SetReadSignalAddressCount(0); signalInfo.SetReceiveSignalCount(m_nSignalReadSignalCount); int nRowIdx = 1, nColIdx = 1; CString strItemText = _T(""); CString strAddr = _T(""); for(int i=0; i