// DlgSystemWSI.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ReviewSystemSetting.h" #include "DlgSystemWSI.h" #include "ReviewSystemSettingDlg.h" #include "CHReviewSetting/Sys_SystemManager.h" #include "CHCommonControls/GridCellCombo.h" #include "CHReviewSetting/GantryInfo.h" #include "afxdialogex.h" // CDlgSystemWSI ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDlgSystemWSI, CDialog) CDlgSystemWSI::CDlgSystemWSI(CWnd* pParent /*=NULL*/) : CDialog(CDlgSystemWSI::IDD, pParent) , m_nGantryIdx(0) , m_nHeaderIdx(0) { m_nWSICount = 0; } CDlgSystemWSI::~CDlgSystemWSI() { } void CDlgSystemWSI::DoDataExchange(CDataExchange* pDX) { DDX_Control(pDX, IDC_GRID_SYSTEM_WSI_INFO, m_ctrlGridWSIInfo); DDX_Text(pDX, IDC_EDIT_SYS_SL_GANTRY_IDX, m_nGantryIdx); DDX_Text(pDX, IDC_EDIT_SYS_SL_HEADER_IDX, m_nHeaderIdx); CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CDlgSystemWSI, CDialog) ON_BN_CLICKED(IDOK, &CDlgSystemWSI::OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, &CDlgSystemWSI::OnBnClickedCancel) ON_BN_CLICKED(IDC_BUTTON_SYS_SYSTEM_WSI_RESET, &CDlgSystemWSI::OnBnClickedButtonSysSystemAfmReset) ON_BN_CLICKED(IDC_BUTTON_SYS_SYSTEM_WSI_APPLY, &CDlgSystemWSI::OnBnClickedButtonSysSystemAfmApply) END_MESSAGE_MAP() // CDlgSystemWSI ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. void CDlgSystemWSI::OnBnClickedOk() { } void CDlgSystemWSI::OnBnClickedCancel() { } void CDlgSystemWSI::UpdateDialogData(int nGantryIdx, int nHeaderIdx, int nWSICount) { m_nGantryIdx = nGantryIdx; m_nHeaderIdx = nHeaderIdx; m_nWSICount = nWSICount; UpdateData(FALSE); FillWSIInfo(); m_ctrlGridWSIInfo.Invalidate(FALSE); } void CDlgSystemWSI::InitWSIInfoGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols; CString strTemp; nRows = WSI_INFO_GRID_ROW_COUNT; nCols = m_nWSICount + 1; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridWSIInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridWSIInfo.SetRowCount(nRows); m_ctrlGridWSIInfo.SetColumnCount(nCols); m_ctrlGridWSIInfo.SetFixedRowCount(nFixRows); m_ctrlGridWSIInfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Index")); //_T("À妽º")); Item.strText = strTemp; m_ctrlGridWSIInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Controller Type")); //_T("ÄÁÆ®·Ñ·¯ ŸÀÔ")); Item.strText = strTemp; m_ctrlGridWSIInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Connection Infomation")); //_T("¿¬°á Á¤º¸")); Item.strText = strTemp; m_ctrlGridWSIInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Offset X(mm)")); //_T("¿ÀÇÁ¼Â X")); Review Camera ±âÁØ Item.strText = strTemp; m_ctrlGridWSIInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Offset Y(mm)")); //_T("¿ÀÇÁ¼Â Y")); Review Camera ±âÁØ Item.strText = strTemp; m_ctrlGridWSIInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("WSI FOV X")); //WSI ÇØ»óµµ Item.strText = strTemp; m_ctrlGridWSIInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("WSI FOV Y")); //WSI ÇØ»óµµ Item.strText = strTemp; m_ctrlGridWSIInfo.SetItem(&Item); Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("WSI ScanDir")); //WSI ÇØ»óµµ Item.strText = strTemp; m_ctrlGridWSIInfo.SetItem(&Item); m_ctrlGridWSIInfo.AutoSize(); } void CDlgSystemWSI::FillWSIInfo() { ChangeWSICountWSIInfoGridControl(); CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; CHeaderInfo *pHeaderInfo = pDlg->GetSys_HeaderInfo(m_nGantryIdx, m_nHeaderIdx); if (pHeaderInfo==NULL) return; int nColIdx = 1; CStringArray strArrayOption; CString strItemText =_T(""); int nWSICount = pHeaderInfo->GetWsiInfoCount(); for (int nWSIIdx=0; nWSIIdxGetWsiInfo(nWSIIdx); if (pWSIInfo==NULL) continue; int nRowIdx = 1; //1. ÄÁÆ®·Ñ·¯ ŸÀÔ CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridWSIInfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0 && pWSIInfo->GetControllerType() > -1) { strItemText = strArrayOption.GetAt(pWSIInfo->GetControllerType()); m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText); } } // 2. ¿¬°á Á¤º¸ nRowIdx++; m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, pWSIInfo->GetConnectionPort()); // 3. ¿ÀÇÁ¼Â X nRowIdx++; strItemText.Format(_T("%.3lf"), pWSIInfo->GetOffsetX()); m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText); // 4. ¿ÀÇÁ¼Â Y nRowIdx++; strItemText.Format(_T("%.3lf"), pWSIInfo->GetOffsetY()); m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText); // 5. WSI FOVX nRowIdx++; strItemText.Format(_T("%.3lf"), pWSIInfo->GetWSIFOVX()); m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText); // 5. WSI FOVY nRowIdx++; strItemText.Format(_T("%.3lf"), pWSIInfo->GetWSIFOVY()); m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText); // 5. WSI °Å´ë°áÇÔ ½ºÄµ ¹æÇâ nRowIdx++; strItemText.Format(_T("%d"), pWSIInfo->GetWSIScanDir()); m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText); nColIdx++; } } void CDlgSystemWSI::ResetWSIInfoGrid() { int i, j, nRowIdx, nColIdx; CString strItemText; nRowIdx = 0; nColIdx = 0; strItemText = _T(""); for(i = 0; i < m_nWSICount; i++) { nRowIdx = 1; nColIdx++; for(j = 0; j < WSI_INFO_GRID_ROW_COUNT - 1; j++) { m_ctrlGridWSIInfo.SetItemText(nRowIdx++, nColIdx, strItemText); } } } void CDlgSystemWSI::ChangeWSICountWSIInfoGridControl() { int i, j, nRowIdx, nColIdx; int nWidth, nMargin, nDataColumnWidth; CString strTemp; CRect rect; m_ctrlGridWSIInfo.GetWindowRect(&rect); m_ctrlGridWSIInfo.SetColumnCount(m_nWSICount + 1); nWidth = m_ctrlGridWSIInfo.GetColumnWidth(0); nMargin = 5; nDataColumnWidth = rect.Width() - nWidth - nMargin; if(m_nWSICount > 0) { GV_ITEM Item; CStringArray strArrayOption; CGridCellCombo* pCellCombo = NULL; nColIdx = 1; nDataColumnWidth = nDataColumnWidth / m_nWSICount; for(i = 0; i < m_nWSICount; i++) { m_ctrlGridWSIInfo.SetColumnWidth(i + 1, nDataColumnWidth); //WSI À妽º nRowIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridWSIInfo.SetItem(&Item); // 1. ÄÁÆ®·Ñ·¯ ŸÀÔ nRowIdx++; strArrayOption.RemoveAll(); for(j = 0; j < WsiController_Count; j++) { switch(j) { case WsiController_Simulation: strTemp.Format(_T("DIT Simulation")); break; case WsiController_Dit: strTemp.Format(_T("DIT WSI")); break; default: strTemp.Format(_T("")); break; } strArrayOption.Add(strTemp); } m_ctrlGridWSIInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridWSIInfo.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); nColIdx++; } } } void CDlgSystemWSI::OnBnClickedButtonSysSystemAfmReset() { ResetWSIInfoGrid(); } void CDlgSystemWSI::OnBnClickedButtonSysSystemAfmApply() { UpdateData(TRUE); CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; CHeaderInfo *pHeaderInfo = pDlg->GetSys_HeaderInfo(m_nGantryIdx, m_nHeaderIdx); if (pHeaderInfo==NULL) return; CStringArray strArrayOption; CString strItemText = _T(""); int nColIdx = 1; int nWSICount = pHeaderInfo->GetWsiInfoCount(); for(int i=0; iGetWsiInfo(i); pWSIInfo->Reset(); // 1. ÄÁÆ®·Ñ·¯ ŸÀÔ CGridCellCombo *pCellCombo = (CGridCellCombo*)m_ctrlGridWSIInfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); int nArrayCount = (int)strArrayOption.GetCount(); for(int j=0; jSetControllerType(j); break; } } } // 2. ¿¬°á Á¤º¸ nRowIdx++; strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx); pWSIInfo->SetConnectionPort(strItemText); // 3. ¿ÀÇÁ¼Â X nRowIdx++; strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx); pWSIInfo->SetOffsetX(_tcstod(strItemText, NULL)); // 4. ¿ÀÇÁ¼Â Y nRowIdx++; strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx); pWSIInfo->SetOffsetY(_tcstod(strItemText, NULL)); // 5.WSI FOV X nRowIdx++; strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx); pWSIInfo->SetWSIFOVX(_tcstod(strItemText, NULL)); // 6.WSI FOV Y nRowIdx++; strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx); pWSIInfo->SetWSIFOVY(_tcstod(strItemText, NULL)); // 7. °Å´ë°áÇÔ ½ºÄµ ¹æÇâ nRowIdx++; strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx); pWSIInfo->SetWSIScanDir(_tcstod(strItemText, NULL)); nColIdx++; } } BOOL CDlgSystemWSI::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. InitWSIInfoGridControl(); FillWSIInfo(); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. }