// DlgAlignPositionInfo.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ReviewSystemSetting.h" #include "DlgAlignPositionInfo.h" #include "afxdialogex.h" #include "ReviewSystemSettingDlg.h" #include "CHReviewSetting/Sys_MotorManager.h" #include "CHReviewSetting/Sys_GlassTypeManager.h" #include "CHReviewSetting/Sys_SystemManager.h" #include "CHReviewSetting/Sys_AlignManager.h" #include "CHCommonControls/GridCellCheck.h" #include "CHCommonControls/GridCellCombo.h" #include "DlgAlignPositionInfo.h" // CDlgAlignPositionInfo ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDlgAlignPositionInfo, CDialog) CDlgAlignPositionInfo::CDlgAlignPositionInfo(CWnd* pParent /*=NULL*/) : CDialog(CDlgAlignPositionInfo::IDD, pParent) { m_nGlassTypeIdx = -1; } CDlgAlignPositionInfo::~CDlgAlignPositionInfo() { } void CDlgAlignPositionInfo::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_GRID_ALIGN_POSITION_INFO, m_ctrlAlignPositionInfo); } BEGIN_MESSAGE_MAP(CDlgAlignPositionInfo, CDialog) ON_BN_CLICKED(IDOK, &CDlgAlignPositionInfo::OnBnClickedOk) END_MESSAGE_MAP() // CDlgAlignPositionInfo ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CDlgAlignPositionInfo::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. InitGridAlignPositionInfo(); this->SetWindowText(_T("Align Position Setting")); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } void CDlgAlignPositionInfo::InitGridAlignPositionInfo() { CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; CSys_GlassTypeManager* pGlassTypeManager = pDlg->GetGlassTypeManager(); if(pGlassTypeManager == NULL) return; CGlassTypeInfo* pGlassTypeInfo = pGlassTypeManager->GetGlassTypeInfo(m_nGlassTypeIdx); if(pGlassTypeInfo == NULL) return; int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols; CString strTemp; CRect rt; //nRows = pGlassTypeInfo->GetAlignPositionInfoCount() + 1; nRows = 6; nCols = ALIGN_CAMERA_COUNT + 1;//m_nVecCameraNumber.size() * 3 + 1;//m_nTotalCameraNumb*3+1;//MOTOR_GRID_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; CFont font; VERIFY(font.CreateFont( 16, // nHeight 5, // nWidth 0, // nEscapement 0, // nOrientation FW_NORMAL, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily _T("MS Shell Dlg"))); // lpszFacename m_ctrlAlignPositionInfo.SetFont(&font); m_ctrlAlignPositionInfo.GetClientRect(&rt); m_ctrlAlignPositionInfo.GetDefaultCell(TRUE, FALSE)->SetBackClr(RGB(180, 210, 247)); m_ctrlAlignPositionInfo.GetDefaultCell(FALSE, TRUE)->SetBackClr(RGB(180, 210, 247));; m_ctrlAlignPositionInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(255, 255, 255)); m_ctrlAlignPositionInfo.SetRowCount(nRows); m_ctrlAlignPositionInfo.SetColumnCount(nCols); m_ctrlAlignPositionInfo.SetFixedRowCount(nFixRows); m_ctrlAlignPositionInfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; //col Item.mask = GVIF_TEXT; Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("Camear Index")); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("Gantry Index")); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("Header Index")); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("Move Type")); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("Align X")); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); Item.row = nRowIdx++; strTemp.Format(_T("Align Y")); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); nRowIdx = 0; nColIdx = 1; CStringArray strArryOptions; strArryOptions.Add(_T("None")); strArryOptions.Add(_T("X Axis")); strArryOptions.Add(_T("Y Axis")); strArryOptions.Add(_T("X,Y Axis")); for(int i = 0; i < ALIGN_CAMERA_COUNT; i++) { Item.row = nRowIdx; Item.col = nColIdx++; strTemp.Format(_T("%02d"),i); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); m_ctrlAlignPositionInfo.SetCellType(3, i+1, RUNTIME_CLASS(CGridCellCombo)); CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlAlignPositionInfo.GetCell(3, i+1); if(pCellCombo) { pCellCombo->SetOptions(strArryOptions); } } nColIdx = nRowIdx = 0; strTemp; Item.mask = GVIF_TEXT; for(int i = 0; i < ALIGN_CAMERA_COUNT; i++) { CAlignPositionInfo* pAlignPositionInfo = pGlassTypeInfo->GetAlignPositionInfo(i); if(pAlignPositionInfo == NULL) continue; //col Item.mask = GVIF_TEXT; Item.row = 1; Item.col = i+1; strTemp.Format(_T("%02d"), pAlignPositionInfo->m_nGantryIndex); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); Item.row = 2; strTemp.Format(_T("%02d"), pAlignPositionInfo->m_nHeaderIndex); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); CStringArray strArryOptions; CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlAlignPositionInfo.GetCell(3, i+1); if(pCellCombo) { pCellCombo->GetOptions(strArryOptions); if(pAlignPositionInfo->m_nMoveType < 0) pCellCombo->SetText(strArryOptions.GetAt(0)); else pCellCombo->SetText(strArryOptions.GetAt(pAlignPositionInfo->m_nMoveType)); } Item.row = 4; strTemp.Format(_T("%lf"), pAlignPositionInfo->m_dAlignPosX); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); Item.row = 5; strTemp.Format(_T("%lf"), pAlignPositionInfo->m_dAlignPosY); Item.strText = strTemp; m_ctrlAlignPositionInfo.SetItem(&Item); } } void CDlgAlignPositionInfo::OnBnClickedOk() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CDialog::OnOK(); CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; CSys_GlassTypeManager* pGlassTypeManager = pDlg->GetGlassTypeManager(); if(pGlassTypeManager == NULL) return; CGlassTypeInfo* pGlassTypeInfo = pGlassTypeManager->GetGlassTypeInfo(m_nGlassTypeIdx); if(pGlassTypeInfo == NULL) return; int nRowIdx, nColIdx; nColIdx = nRowIdx = 0; CString strTemp; GV_ITEM Item; Item.mask = GVIF_TEXT; for(int i = 0; i < ALIGN_CAMERA_COUNT; i++) { CAlignPositionInfo* pAlignPositionInfo = pGlassTypeInfo->GetAlignPositionInfo(i); //pAlignPositionInfo = new CAlignPositionInfo(); if(pAlignPositionInfo == NULL) continue; strTemp = m_ctrlAlignPositionInfo.GetItemText(1,i+1); pAlignPositionInfo->m_nGantryIndex = (int)_tcstod(strTemp, NULL); strTemp = m_ctrlAlignPositionInfo.GetItemText(2,i+1); pAlignPositionInfo->m_nHeaderIndex = (int)_tcstod(strTemp, NULL); /*strTemp = m_ctrlAlignPositionInfo.GetItemText(1,i+1); pAlignPositionInfo->m_dAlignPosX = _tcstod(strTemp, NULL);*/ CStringArray strArryOptions; CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlAlignPositionInfo.GetCell(3, i+1); if(pCellCombo) { CString strText = pCellCombo->GetText(); pCellCombo->GetOptions(strArryOptions); for(int j = 0; j < (int)strArryOptions.GetCount(); j++) { if(strArryOptions.GetAt(j).Compare(strText) == 0) pAlignPositionInfo->m_nMoveType = j; } } strTemp = m_ctrlAlignPositionInfo.GetItemText(4,i+1); pAlignPositionInfo->m_dAlignPosX = _tcstod(strTemp, NULL); strTemp = m_ctrlAlignPositionInfo.GetItemText(5,i+1); pAlignPositionInfo->m_dAlignPosY = _tcstod(strTemp, NULL); } }