// DlgReview.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ReviewRecipeEditor.h" #include "DlgCommon.h" #include "ReviewRecipeEditorDlg.h" #include "CHCommonControls/GridCellButton.h" #include "DlgUserPitchInpout.h" #include "DlgRecipeChange.h" // CDlgCommon ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDlgCommon, CDialog) CDlgCommon::CDlgCommon(CWnd* pParent /*=NULL*/) : CDialog(CDlgCommon::IDD, pParent) , m_nPlanCount(0) , m_nUserDefectCount(0) , m_nReflowPixelScale(0) , m_nradioGantryMode(0) { m_nSelectPlanIdx = -1; m_nLightCount = 0; m_nAFMCount = 0; ZeroMemory(m_bSelectGlassSlot, sizeof(BOOL) * TOTAL_GLASS_SLOT_COUNT); } CDlgCommon::~CDlgCommon() { } void CDlgCommon::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_GRID_RCP_REVIEW_PLAN_INFO, m_ctrlGridPlanInfo); DDX_Control(pDX, IDC_GRID_RCP_REVIEW_LIGHT_INFO, m_ctrlGridLightInfo); DDX_Control(pDX, IDC_GRID_RCP_REVIEW_AFM_RECIPE_INFO, m_ctrlGridAFMRecipeInfo); DDX_Control(pDX, IDC_GRID_RCP_REFLOW_PARAMETER, m_ctrlGridReflowParameter); DDX_Control(pDX, IDC_GRID_RCP_REVIEW_USER_DEFECT_INFO, m_ctrlGridUserDefectInfo); DDX_Text(pDX, IDC_EDIT_RCP_REVIEW_PLAN_COUNT, m_nPlanCount); DDX_Text(pDX, IDC_EDIT_RCP_REVIEW_USER_DEFECT_COUNT, m_nUserDefectCount); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_01, m_ctrlStaticGlassSlot_01); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_02, m_ctrlStaticGlassSlot_02); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_03, m_ctrlStaticGlassSlot_03); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_04, m_ctrlStaticGlassSlot_04); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_05, m_ctrlStaticGlassSlot_05); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_06, m_ctrlStaticGlassSlot_06); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_07, m_ctrlStaticGlassSlot_07); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_08, m_ctrlStaticGlassSlot_08); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_09, m_ctrlStaticGlassSlot_09); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_10, m_ctrlStaticGlassSlot_10); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_11, m_ctrlStaticGlassSlot_11); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_12, m_ctrlStaticGlassSlot_12); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_13, m_ctrlStaticGlassSlot_13); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_14, m_ctrlStaticGlassSlot_14); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_15, m_ctrlStaticGlassSlot_15); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_16, m_ctrlStaticGlassSlot_16); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_17, m_ctrlStaticGlassSlot_17); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_18, m_ctrlStaticGlassSlot_18); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_19, m_ctrlStaticGlassSlot_19); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_20, m_ctrlStaticGlassSlot_20); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_21, m_ctrlStaticGlassSlot_21); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_22, m_ctrlStaticGlassSlot_22); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_23, m_ctrlStaticGlassSlot_23); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_24, m_ctrlStaticGlassSlot_24); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_25, m_ctrlStaticGlassSlot_25); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_26, m_ctrlStaticGlassSlot_26); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_27, m_ctrlStaticGlassSlot_27); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_28, m_ctrlStaticGlassSlot_28); /*< LYW 20220525 - #4157 ADD Start >*/ DDX_Radio(pDX, IDC_RADIO_GANTRY_MODE_1, (int&)m_nradioGantryMode); /*< LYW 20220525 - #4157 ADD End >*/ DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_ALL_SELECT, m_ctrlStaticGlassSlot_ALL_Select); DDX_Control(pDX, IDC_STATIC_GLASS_SLOT_ALL_DESELECT, m_ctrlStaticGlassSlot_ALL_Deselect); DDX_Control(pDX, IDC_COMBO_RCP_REVIEW_GLASS_TYPE, m_ctrlComboGlassType); DDX_Control(pDX, IDC_GRID_RCP_REVIEW_SCHEDULE_INFO, m_ctrlGridScheduleInfo); DDX_Control(pDX, IDC_GRID_RCP_REVIEW_SCHEDULE_RANGE_POINT_COUNT, m_ctrlGridScheduleRangeCntInfo); DDX_Control(pDX, IDC_CHECK_AUTO_LIGHT, m_ctrlAutoLight); DDX_Control(pDX, IDC_COMBO_RCP_GLASSORIGIN, m_ctrlComboGlassOrigin); DDX_Text(pDX, IDC_EDIT_RCP_REFLOW_PIXEL_SCALE, m_nReflowPixelScale); } BEGIN_MESSAGE_MAP(CDlgCommon, CDialog) ON_BN_CLICKED(IDC_BUTTON_RCP_REVIEW_RESET, &CDlgCommon::OnBnClickedButtonRcpReviewReset) ON_BN_CLICKED(IDC_BUTTON_RCP_REVIEW_APPLY, &CDlgCommon::OnBnClickedButtonRcpReviewApply) ON_CONTROL_RANGE(BN_CLICKED, IDC_STATIC_GLASS_SLOT_01, IDC_STATIC_GLASS_SLOT_28, OnGlassSlotClick) ON_CONTROL_RANGE(BN_CLICKED, IDC_RADIO_GANTRY_MODE_1, IDC_RADIO_GANTRY_MODE_3, OnClickRadioGantryMode) ON_EN_CHANGE(IDC_EDIT_RCP_REVIEW_PLAN_COUNT, &CDlgCommon::OnEnChangeEditRcpReviewPlanCount) ON_EN_CHANGE(IDC_EDIT_RCP_REVIEW_USER_DEFECT_COUNT, &CDlgCommon::OnEnChangeEditRcpReviewUserDefectCount) ON_NOTIFY(NM_CLICK, IDC_GRID_RCP_REVIEW_PLAN_INFO, &CDlgCommon::OnPlanInfoGridClick) ON_NOTIFY(GVN_COMBOSELCHANGE, IDC_GRID_RCP_REVIEW_USER_DEFECT_INFO, &CDlgCommon::OnSelChange) ON_BN_CLICKED(IDC_BUTTON_LOAD_MASTER, &CDlgCommon::OnBnClickedButtonLoadMaster) ON_NOTIFY(NM_CLICK, IDC_GRID_RCP_REFLOW_PARAMETER, &CDlgCommon::OnClickImageInfo) ON_BN_CLICKED(IDC_BUTTON_USER_PITCH_INPUT, &CDlgCommon::OnBnClickedButtonUserPitchInput) ON_BN_CLICKED(IDC_BUTTON4, &CDlgCommon::OnBnClickedButton4) /*< LYW 20220525 - #4157 ADD Start >*/ /*< LYW 20220525 - #4157 ADD End >*/ END_MESSAGE_MAP() // CDlgCommon ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CDlgCommon::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. int i, nSlotIdx = 0; CString strFont, strTemp; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_01; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_02; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_03; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_04; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_05; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_06; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_07; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_08; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_09; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_10; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_11; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_12; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_13; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_14; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_15; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_16; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_17; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_18; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_19; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_20; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_21; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_22; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_23; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_24; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_25; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_26; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_27; m_ctrlStaticGlassSlot[nSlotIdx++] = &m_ctrlStaticGlassSlot_28; strFont = _T("MS Sans Serif"); for(i = 0; i < TOTAL_GLASS_SLOT_COUNT; i++) { strTemp.Format(_T("%d"), i + 1); m_ctrlStaticGlassSlot[i]->SetFontStatic(strFont, 9, RGB(0,0,0), FS_CENTER | FS_BOLD); m_ctrlStaticGlassSlot[i]->SetBackground(RGB(240,240,240)); m_ctrlStaticGlassSlot[i]->SetWindowText(strTemp); } m_ctrlStaticGlassSlot_ALL_Select.SetFontStatic(strFont, 9, RGB(0,0,0), FS_CENTER | FS_BOLD); m_ctrlStaticGlassSlot_ALL_Select.SetBackground(RGB(240,240,240)); m_ctrlStaticGlassSlot_ALL_Select.SetWindowText(_T("All Select"));//_T("Àüü ¼±ÅÃ")); m_ctrlStaticGlassSlot_ALL_Deselect.SetFontStatic(strFont, 9, RGB(0,0,0), FS_CENTER | FS_BOLD); m_ctrlStaticGlassSlot_ALL_Deselect.SetBackground(RGB(240,240,240)); m_ctrlStaticGlassSlot_ALL_Deselect.SetWindowText(_T("Cancel"));//_T("¼±Åà Ãë¼Ò")); int nGlassTypeCount; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg) { CSys_GlassTypeManager *pSysGlassTypeManager = pDlg->GetSysGlassTypeManager(); CRcp_RsReviewManager *pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pSysGlassTypeManager && pRcpRsReviewManager) { nGlassTypeCount = pSysGlassTypeManager->GetGlassTypeInfoCount(); for(i = 0; i < nGlassTypeCount; i++) { CGlassTypeInfo *pGlassTypeInfo = pSysGlassTypeManager->GetGlassTypeInfo(i); if (pGlassTypeInfo==NULL) continue; m_ctrlComboGlassType.InsertString(i, pGlassTypeInfo->m_strGlassTypeName); } m_ctrlComboGlassType.SetCurSel(pRcpRsReviewManager->GetRsRcpReviewInfo()->m_nGlassTypeIdx); m_ctrlComboGlassOrigin.SetCurSel(pRcpRsReviewManager->GetRsRcpReviewInfo()->m_nGlassOrigion); } } InitPlanInfoGridControl(); FillPlanInfo(); InitLightInfoGridControl(); FillLightInfoInfo(); InitAFMRecipeGridControl(); FillAFMRecipeInfo(); InitScheduleGridControl(); FillScheduleInfo(); InitScheduleRangeCntGridControl(); FillScheduleRangeCntInfo(); InitReflowParameterGridControl(); FillReflowParameter(); InitUserDefectInfoGridControl(); FillUserDefectInfo(); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } BOOL CDlgCommon::PreTranslateMessage(MSG* pMsg) { // TODO: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. CRect rtSelect, rtDeselect; if( pMsg->message == WM_KEYDOWN ) { if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE ) { ::TranslateMessage(pMsg); ::DispatchMessage(pMsg); return TRUE; } } int i, nPlanCount; VectorRcpPlanInfo* pVectorRcpPlanInfo = NULL; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); m_ctrlStaticGlassSlot_ALL_Select.GetWindowRect(rtSelect); m_ctrlStaticGlassSlot_ALL_Deselect.GetWindowRect(rtDeselect); if(pDlg) { pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager) { nPlanCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfoCount(); if(m_nSelectPlanIdx < nPlanCount && m_nSelectPlanIdx >= 0) { if(rtSelect.PtInRect(pMsg->pt)) { if(pMsg->message == WM_LBUTTONDOWN) { //pVectorRcpPlanInfo = &pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo();m_rsRcpReviewInfo.m_vecRcpPlanInfo; m_ctrlStaticGlassSlot_ALL_Select.SetBackground(RGB(0,255,0)); for(i = 0; i < TOTAL_GLASS_SLOT_COUNT; i++) { pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(m_nSelectPlanIdx)->m_bSelectSlot[i] = TRUE; //(*pVectorRcpPlanInfo)[m_nSelectPlanIdx].m_bSelectSlot[i] = TRUE; } UpdateSelectGlassSlot(); } if(pMsg->message == WM_LBUTTONUP) { m_ctrlStaticGlassSlot_ALL_Select.SetBackground(RGB(240,240,240)); } } if(rtDeselect.PtInRect(pMsg->pt)) { if(pMsg->message == WM_LBUTTONDOWN) { m_ctrlStaticGlassSlot_ALL_Deselect.SetBackground(RGB(0,255,0)); memset(pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(m_nSelectPlanIdx)->m_bSelectSlot, 0, sizeof(BOOL) * TOTAL_GLASS_SLOT_COUNT); UpdateSelectGlassSlot(); } if(pMsg->message == WM_LBUTTONUP) { m_ctrlStaticGlassSlot_ALL_Deselect.SetBackground(RGB(240,240,240)); } } } } } return CDialog::PreTranslateMessage(pMsg); } void CDlgCommon::OnBnClickedButtonRcpReviewReset() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. int i, nRowIdx, nColIdx; CString strItemText; m_nPlanCount = 0; m_nUserDefectCount = 0; m_ctrlComboGlassType.SetCurSel(-1); m_ctrlComboGlassOrigin.SetCurSel(4); UpdateData(FALSE); OnEnChangeEditRcpReviewPlanCount(); OnEnChangeEditRcpReviewUserDefectCount(); nRowIdx = 1; nColIdx = 1; strItemText = _T(""); for(i = 0; i < m_nLightCount; i++) { m_ctrlGridLightInfo.SetItemText(nRowIdx, nColIdx++, strItemText); } m_ctrlGridLightInfo.Invalidate(FALSE); m_ctrlAutoLight.SetCheck(FALSE); nRowIdx = 1; nColIdx = 1; for(i = 0; i < m_nAFMCount; i++) { m_ctrlGridAFMRecipeInfo.SetItemText(nRowIdx, nColIdx++, strItemText); } m_ctrlGridAFMRecipeInfo.Invalidate(FALSE); nRowIdx = 1; nColIdx = 0; CGridCellCheck* pCellCheck = NULL; for(i = 0; i < SCHEDULE_INFO_GRID_COL_COUNT; i++) { if(i == 0) { pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleInfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) { pCellCheck->SetCheck(FALSE); } } m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText); } m_ctrlGridScheduleInfo.Invalidate(FALSE); } void CDlgCommon::OnBnClickedButtonRcpReviewApply() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. UpdateData(TRUE); int i, j, nRowIdx, nColIdx, nArrayCount; CString strTemp, strItemText, strItemTextTemp; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CGridCellCheck* pCellCheck = NULL; CGridCellCombo* pCellCombo = NULL; CGridCellCombo* pCellComboTemp = NULL; CStringArray strArrayOption; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; // [2017:6:16]-[WEZASW] : schedule Value ¿¹¿Üó¸®. (Max Point 200) nRowIdx = 1; nColIdx = 2; /* if (_ttoi(m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++)) > 200) { AfxMessageBox(_T("Review setting Out of range (Max 200")); return; } */ nColIdx++; //if (_ttoi(m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++)) > 200) //{ // AfxMessageBox(_T("WSI setting Out of range (Max 200)")); // return; //} //±Û¶ó½º ŸÀÔ pRsRcpReviewInfo->m_nGlassTypeIdx = m_ctrlComboGlassType.GetCurSel(); pRsRcpReviewInfo->m_nGlassOrigion = m_ctrlComboGlassOrigin.GetCurSel(); pRsRcpReviewInfo->SetRcpPlanInfoCount(m_nPlanCount); //Ç÷£ nRowIdx = 1; for(i = 0; i < m_nPlanCount; i++) { nColIdx = 1; pCellCombo = (CGridCellCombo*)m_ctrlGridPlanInfo.GetCell(nRowIdx, nColIdx++); if(pCellCombo) { strItemText = pCellCombo->GetText(); // [2017:1:19]-[WEZASW] : Plan ¿¹¿Üó¸® // 1.'WSI Measure' PlanÀº ¹Ýµå½Ã 'Defect Review' PlanÀ» ¼± ÁøÇà.(°í°´»ç¾ç) /*if (i == 0 && strItemText.Compare(_T("WSI Measure")) == 0) { AfxMessageBox(_T("Please add the 'Defect Review' plan first.")); return; } else if (strItemText.Compare(_T("WSI Measure")) == 0 && strItemTextTemp.Compare(_T("Defect Review")) != 0) { AfxMessageBox(_T("Please add the 'Defect Review' plan first.")); return; }*/ // 2.Plan °³¼ö¿¡ ´ëÇÑ Plan Ç׸ñ ¼±Åà if (strItemText.Compare(_T("")) == 0) { AfxMessageBox(_T("Please fill in the Plan information.")); return; } strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRsRcpReviewInfo->GetRcpPlanInfo(i)->m_nReviewType = j; break; } } strItemTextTemp = strItemText; } nRowIdx++; } //USER Á¶¸í nColIdx = 1; pRsRcpReviewInfo->SetRcpUserLightInfoCount(m_nLightCount); pRsRcpReviewInfo->m_bAutoLight = m_ctrlAutoLight.GetCheck(); for(i = 0; i < m_nLightCount; i++) { nRowIdx = 1; CRcpLightInfo* pRcpLightInfo = pRsRcpReviewInfo->GetRcpUserLightInfo(i); if(pRcpLightInfo == NULL) continue; strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nLightLevel = _ttoi(strItemText); strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nMinThresLevel = _ttoi(strItemText); strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nMaxThresLevel = _ttoi(strItemText); strItemText = m_ctrlGridLightInfo.GetItemText(nRowIdx++, nColIdx); pRcpLightInfo->m_nAutoLightStep = _ttoi(strItemText); nColIdx++; } // USER AFM ·¹½ÃÇÇ TRACE(_T("[A2E]Apply 4\n")); nRowIdx = 1; nColIdx = 1; pRsRcpReviewInfo->SetRcpUserAFMRecipeInfoCount(m_nAFMCount); for(i = 0; i < m_nAFMCount; i++) { CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRsRcpReviewInfo->GetRcpUserAFMRecipeInfo(i); if(pRcpAFMRecipeInfo == NULL) continue; strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(nRowIdx, nColIdx); pRcpAFMRecipeInfo->m_nRecipeIndex = _ttoi(strItemText); strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(3, 1); pRcpAFMRecipeInfo->m_dZPosOffset = _ttof(strItemText); strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(4, 1); pRcpAFMRecipeInfo->m_nAFMOffMode = _ttoi(strItemText); strItemText = m_ctrlGridAFMRecipeInfo.GetItemText(5, 1); pRcpAFMRecipeInfo->m_bAFMHomeOffMode = _ttoi(strItemText); //zoom Idx CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridAFMRecipeInfo.GetCell(nRowIdx+1, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRcpAFMRecipeInfo->m_nZoomIndex = j; break; } } } nColIdx++; } //½ºÄÉÁì TRACE(_T("[A2E]Apply 5\n")); CRcpSchedulingInfo* pScheduleInfo = pRsRcpReviewInfo->GetRcpSchedulingInfo(); if (pScheduleInfo == NULL) return; // schedule nRowIdx = 1; nColIdx = 0; pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleInfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) pScheduleInfo->SetTacTimeFree(pCellCheck->GetCheck()); strItemText = m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++); pScheduleInfo->SetMaxPadPointCount(_ttoi(strItemText)); //strItemText = m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++); //pScheduleInfo->SetTacTime(_tcstod(strItemText, NULL)); strItemText = m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++); pScheduleInfo->SetMaxPointCount(_ttoi(strItemText)); strItemText = m_ctrlGridScheduleInfo.GetItemText(nRowIdx, nColIdx++); pScheduleInfo->SetMaxWsiPointCount(_ttoi(strItemText)); //pScheduleInfo->SetSingleGantryPath(m_EditControl_GantryPathUse); pScheduleInfo->SetSingleGantryPath(m_nradioGantryMode); pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleInfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) pScheduleInfo->SetShortestPath(pCellCheck->GetCheck()); // range point count nRowIdx = 1; nColIdx = 0; pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleRangeCntInfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) pScheduleInfo->SetUseRangeCntInfo(pCellCheck->GetCheck()); strItemText = m_ctrlGridScheduleRangeCntInfo.GetItemText(nRowIdx, nColIdx++); pScheduleInfo->SetRangePointCount(Range_Left, _ttoi(strItemText)); strItemText = m_ctrlGridScheduleRangeCntInfo.GetItemText(nRowIdx, nColIdx++); pScheduleInfo->SetRangePointCount(Range_Middle, _ttoi(strItemText)); strItemText = m_ctrlGridScheduleRangeCntInfo.GetItemText(nRowIdx, nColIdx++); pScheduleInfo->SetRangePointCount(Range_Right, _ttoi(strItemText)); //pScheduleInfo->SetSingleGantryPath(m_EditControl_GantryPathUse); pScheduleInfo->SetSingleGantryPath(m_nradioGantryMode); //»ç¿ëÀÚ °áÇÔ nRowIdx = 1; pRsRcpReviewInfo->SetRcpUserDefectInfoCount(m_nUserDefectCount); for(i = 0; i < m_nUserDefectCount; i++) { nColIdx = 1; CRcpUserDefectInfo* pRcpUserDefectInfo = pRsRcpReviewInfo->GetRcpUserDefectInfo(i); if(pRcpUserDefectInfo == NULL) continue; strItemText = m_ctrlGridUserDefectInfo.GetItemText(nRowIdx, nColIdx++); pRcpUserDefectInfo->m_dPosX = _tcstod(strItemText, NULL); strItemText = m_ctrlGridUserDefectInfo.GetItemText(nRowIdx, nColIdx++); pRcpUserDefectInfo->m_dPosY = _tcstod(strItemText, NULL); pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx++); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRsRcpReviewInfo->GetRcpUserDefectInfo(i)->m_nCellSide = j; break; } } strItemTextTemp = strItemText; } pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx++); if(pCellCombo) { strArrayOption.RemoveAll(); strItemText = pCellCombo->GetText(); pCellCombo->GetOptions(strArrayOption); nArrayCount = (int)strArrayOption.GetCount(); for(j = 0; j < nArrayCount; j++) { strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { pRsRcpReviewInfo->GetRcpUserDefectInfo(i)->m_nInspectionMode = j; break; } } strItemTextTemp = strItemText; } strItemText = m_ctrlGridUserDefectInfo.GetItemText(nRowIdx, nColIdx++); pRcpUserDefectInfo->m_strCellId = strItemText; strItemText = m_ctrlGridUserDefectInfo.GetItemText(nRowIdx, nColIdx++); pRcpUserDefectInfo->m_strCellId2 = strItemText; strItemText = m_ctrlGridUserDefectInfo.GetItemText(nRowIdx, nColIdx++); pRcpUserDefectInfo->m_nReflowCellIndex = _ttoi(strItemText); nRowIdx++; } nRowIdx = 1; pRsRcpReviewInfo->SetRcpReflowParameterCount(REFLOW_PARAMETER_GRID_ROW_COUNT); for (int i=0; i < REFLOW_PARAMETER_GRID_ROW_COUNT; i++) { nColIdx = 1; CRcpReflowParameter* pRcpReflowParameter = pRsRcpReviewInfo->GetRcpReflowParameter(i); if (pRcpReflowParameter == NULL) continue; strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); pRcpReflowParameter->m_nAPixel =_ttoi(strItemText); strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); pRcpReflowParameter->m_nBPixel = _ttoi(strItemText); strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); pRcpReflowParameter->m_nCPixel =_ttoi(strItemText); strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); pRcpReflowParameter->m_nDPixel = _ttoi(strItemText); // // strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); // pRcpReflowParameter->m_nDam1 =_ttoi(strItemText); // // strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); // pRcpReflowParameter->m_nBaseTh = _ttoi(strItemText); strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); pRcpReflowParameter->m_nDam1Th =_ttoi(strItemText); strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); pRcpReflowParameter->m_nDam2Th =_ttoi(strItemText); strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); pRcpReflowParameter->m_nDam3Th =_ttoi(strItemText); strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); pRcpReflowParameter->m_nDam4Th =_ttoi(strItemText); strItemText = m_ctrlGridReflowParameter.GetItemText(nRowIdx, nColIdx++); pRcpReflowParameter->m_strMasterFileName = strItemText; pRcpReflowParameter->m_nPixelScale = m_nReflowPixelScale; nRowIdx++; } pDlg->UpdateTabDialogData(); } void CDlgCommon::OnGlassSlotClick(UINT nID) { int nIdx, nPlanCount; CRcpPlanInfo rcpPlanInfo; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; nIdx = nID - IDC_STATIC_GLASS_SLOT_01; if(nIdx >= TOTAL_GLASS_SLOT_COUNT) return; if(m_nSelectPlanIdx < 0) { AfxMessageBox(_T("Please Select Plan"));//_T("Ç÷£À» ¼±ÅÃÇϼ¼¿ä")); return; } pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; nPlanCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfoCount(); if(m_nSelectPlanIdx < nPlanCount) { CRcpPlanInfo* pRcpPlanInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(m_nSelectPlanIdx); if(pRcpPlanInfo == NULL) return; if(pRcpPlanInfo->m_bSelectSlot[nIdx]) { m_ctrlStaticGlassSlot[nIdx]->SetBackground(RGB(240,240,240)); } else { m_ctrlStaticGlassSlot[nIdx]->SetBackground(RGB(0,255,0)); } pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(m_nSelectPlanIdx)->m_bSelectSlot[nIdx] = !rcpPlanInfo.m_bSelectSlot[nIdx]; } else { } } void CDlgCommon::InitPlanInfoGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nMargin, nDataColumnWidth; CString strTemp; CRect rect; nRows = m_nPlanCount + 1; nCols = PLAN_INFO_GRID_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridPlanInfo.GetWindowRect(&rect); m_ctrlGridPlanInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridPlanInfo.SetRowCount(nRows); m_ctrlGridPlanInfo.SetColumnCount(nCols); m_ctrlGridPlanInfo.SetFixedRowCount(nFixRows); m_ctrlGridPlanInfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Index"));//_T("À妽º")); Item.strText = strTemp; m_ctrlGridPlanInfo.SetItem(&Item); m_ctrlGridPlanInfo.SetColumnWidth(nColIdx++, 50); nMargin = 22; nDataColumnWidth = rect.Width() - 50 - nMargin; Item.col = nColIdx; strTemp.Format(_T("Motion Plan"));//_T("µ¿ÀÛ Ç÷£")); Item.strText = strTemp; m_ctrlGridPlanInfo.SetItem(&Item); m_ctrlGridPlanInfo.SetColumnWidth(nColIdx++, nDataColumnWidth); } void CDlgCommon::FillPlanInfo() { int i, nRowIdx, nColIdx, nPlanCount; CString strItemText; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; nPlanCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfoCount(); if(nPlanCount >= 0) { CGridCellCombo* pCellCombo = NULL; CStringArray strArrayOption; nRowIdx = 1; m_nPlanCount = nPlanCount; UpdateData(FALSE); OnEnChangeEditRcpReviewPlanCount(); for(i = 0; i < nPlanCount; i++) { nColIdx = 1; CRcpPlanInfo* pRcpPlanInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(i); if(pRcpPlanInfo == NULL) continue; pCellCombo = (CGridCellCombo*)m_ctrlGridPlanInfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0 && pRcpPlanInfo->m_nReviewType > -1) { strItemText = strArrayOption.GetAt(pRcpPlanInfo->m_nReviewType); m_ctrlGridPlanInfo.SetItemText(nRowIdx, nColIdx, strItemText); } } nRowIdx++; } } m_ctrlGridPlanInfo.Invalidate(FALSE); } void CDlgCommon::InitLightInfoGridControl() { CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; const CSystemInfo *pSystemInfo = pDlg->GetSys_SystemInfo(); if (pSystemInfo==NULL) return; int nLightCount = 0; // Çì´õ °¹¼ö°¡ Á¶¸í ¼³Á¤ °¹¼öÀÓ int nGantryCount = pSystemInfo->GetGantryInfoCount(); for(int nGantryIdx=0; nGantryIdxGetGantryInfo(nGantryIdx); if (pGantryInfo==NULL) continue; int nHeaderCount = pGantryInfo->GetHeaderInfoCount(); for (int nHeaderIdx=0; nHeaderIdxGetHeaderInfo(nHeaderIdx); if ( pHeaderInfo->m_nModuleType ) { nLightCount++; } } } m_nLightCount = nLightCount; int nRows = LIGHT_INFO_GRID_ROW_COUNT; int nCols = nLightCount + 1; int nFixRows = 1; int nFixCols = 1; int nRowIdx = 0; int nColIdx = 0; CRect rect; m_ctrlGridLightInfo.GetWindowRect(&rect); m_ctrlGridLightInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridLightInfo.SetRowCount(nRows); m_ctrlGridLightInfo.SetColumnCount(nCols); m_ctrlGridLightInfo.SetFixedRowCount(nFixRows); m_ctrlGridLightInfo.SetFixedColumnCount(nFixCols); CString strTemp = _T(""); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Index"));//_T("À妽º")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); m_ctrlGridLightInfo.SetColumnWidth(nColIdx, 100); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Light Level (gLv)"));//_T("±¤·® °ª")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Min Level (gLv)"));//_T("ÃÖ¼Ò ±¤·® °ª")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Max Level (gLv)"));//_T("ÃÖ´ë ±¤·® °ª")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Auto Light (gLv)"));//_T("ÀÚµ¿ º¯°æ °ª")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); int nMargin = 5; int nDataColumnWidth = 0; if (nLightCount>0) { nDataColumnWidth = (rect.Width() - 100 - nMargin) / nLightCount; } nRowIdx = 0; nColIdx = 1; Item.row = nRowIdx; for(int nLightIdx = 0; nLightIdx < nLightCount; nLightIdx++) { Item.col = nColIdx; strTemp.Format(_T("%02d"), nLightIdx); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); m_ctrlGridLightInfo.SetColumnWidth(nColIdx++, nDataColumnWidth); } } void CDlgCommon::FillLightInfoInfo() { int i, nRowIdx, nColIdx, nLightCount; CString strItemText; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; m_ctrlAutoLight.SetCheck(pRcpRsReviewManager->GetRsRcpReviewInfo()->GetAutoLight()); nLightCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserLightInfoCount(); nColIdx = 1; for(i = 0; i < nLightCount; i++) { nRowIdx = 1; // [2016:11:2]-[WEZASW] : GetRcpLightInfo(i) -> GetRcpUserLightInfo(i) CRcpLightInfo* pRcpLightInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserLightInfo(i); if(pRcpLightInfo == NULL) continue; strItemText.Format(_T("%d"), pRcpLightInfo->m_nLightLevel); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); strItemText.Format(_T("%d"), pRcpLightInfo->m_nMinThresLevel); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); strItemText.Format(_T("%d"), pRcpLightInfo->m_nMaxThresLevel); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); strItemText.Format(_T("%d"), pRcpLightInfo->m_nAutoLightStep); m_ctrlGridLightInfo.SetItemText(nRowIdx++, nColIdx, strItemText); nColIdx++; } m_ctrlGridLightInfo.Invalidate(FALSE); } void CDlgCommon::InitAFMRecipeGridControl() { CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; const CSystemInfo* pSystemInfo = pDlg->GetSys_SystemInfo(); if (pSystemInfo==NULL) return; CString strTemp = _T(""); CStringArray strArrayOption[2]; int nLensCount = 0; int nAFMCount = 0; int nGantryCount = pSystemInfo->GetGantryInfoCount(); for(int nGantryIdx = 0; nGantryIdx < nGantryCount; nGantryIdx++) { const CGantryInfo *pGantryInfo = pSystemInfo->GetGantryInfo(nGantryIdx); if (pGantryInfo==NULL) continue; int nHeaderCount = pGantryInfo->GetHeaderInfoCount(); for (int nHeaderIdx=0; nHeaderIdxGetHeaderInfo(nHeaderIdx); if (pHeaderInfo==NULL) continue; nAFMCount += pHeaderInfo->GetAFMInfoCount(); //[2017:6:2]-[WEZASW] : SystemSettingÀÇ ¹èÀ²Á¤º¸ ±âÁØÀ¸·Î Àû¿ë(¼ÂÆÃµÈ ·»Áî ¹èÀ²¸¸ ¼±ÅÃ) nLensCount = pHeaderInfo->GetMagnificInfoCount(); for (int nLensIdx=0; nLensIdxGetMagnificInfo(nLensIdx); if (pMagnificInfo==NULL) continue; // 2017.12.21 smok. µÎ °³ ÀÌ»óÀÇ gantry / header ½Ã AFM ¹èÀ² Ç¥½Ã ÀÌ»ó. // strArrayOption[nHeaderIdx].Add(pMagnificInfo->m_strMagnificName); strArrayOption[nGantryIdx].Add(pMagnificInfo->m_strMagnificName); } } } m_nAFMCount = nAFMCount; if(m_nAFMCount > 0) { int nRows = AFM_RECIPE_INFO_GRID_ROW_COUNT; int nCols = m_nAFMCount + 1; int nFixRows = 1; int nFixCols = 1; int nRowIdx = 0; int nColIdx = 0; CRect rect; m_ctrlGridAFMRecipeInfo.GetWindowRect(&rect); m_ctrlGridAFMRecipeInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridAFMRecipeInfo.SetRowCount(nRows); m_ctrlGridAFMRecipeInfo.SetColumnCount(nCols); m_ctrlGridAFMRecipeInfo.SetFixedRowCount(nFixRows); m_ctrlGridAFMRecipeInfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Index"));//_T("À妽º")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); m_ctrlGridAFMRecipeInfo.SetColumnWidth(nColIdx, 100); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Recipe Index"));//_T("·¹½ÃÇÇ À妽º")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Magnific Index"));//_T("¹èÀ² À妽º")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("AFM ZPos Offset")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("AFM Off Mode")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("AFM Home OFF")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); int nMargin = 5; int nDataColumnWidth = (rect.Width() - 100 - nMargin) / m_nAFMCount; nRowIdx = 0; nColIdx = 1; Item.row = nRowIdx; for(int nAFMIdx = 0; nAFMIdx < m_nAFMCount; nAFMIdx++) { Item.col = nColIdx; strTemp.Format(_T("%02d"), nAFMIdx); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); m_ctrlGridAFMRecipeInfo.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; } nRowIdx = 2; nColIdx = 1; Item.row = nRowIdx; for(int nAFMIdx = 0; nAFMIdx < m_nAFMCount; nAFMIdx++) { Item.col = nColIdx; m_ctrlGridAFMRecipeInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridAFMRecipeInfo.GetCell(nRowIdx, nColIdx); if (pCellCombo) { pCellCombo->SetOptions(strArrayOption[nAFMIdx]); pCellCombo->SetStyle(CBS_DROPDOWN); } nColIdx++; } } } void CDlgCommon::FillAFMRecipeInfo() { int i, nRowIdx, nColIdx, nAFMCount; CString strItemText; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; CStringArray strArrayOption; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; nAFMCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpAFMRecipeInfoCount(); nRowIdx = 1; nColIdx = 1; for(i = 0; i < nAFMCount; i++) { // [2016:11:2]-[WEZASW] : GetRcpAFMRecipeInfo(i) -> GetRcpUserAFMRecipeInfo(i) CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserAFMRecipeInfo(i); if(pRcpAFMRecipeInfo == NULL) continue; strItemText.Format(_T("%d"), pRcpAFMRecipeInfo->m_nRecipeIndex); m_ctrlGridAFMRecipeInfo.SetItemText(nRowIdx, 1, strItemText); strItemText.Format(_T("%lf"), pRcpAFMRecipeInfo->m_dZPosOffset); m_ctrlGridAFMRecipeInfo.SetItemText(3, 1, strItemText); strItemText.Format(_T("%d"), pRcpAFMRecipeInfo->m_nAFMOffMode); m_ctrlGridAFMRecipeInfo.SetItemText(4, 1, strItemText); strItemText.Format(_T("%d"), pRcpAFMRecipeInfo->m_bAFMHomeOffMode); m_ctrlGridAFMRecipeInfo.SetItemText(5, 1, strItemText); } nRowIdx++; nColIdx = 1; for(i = 0; i < nAFMCount; i++) { // [2016:11:2]-[WEZASW] : GetRcpAFMRecipeInfo(i) -> GetRcpUserAFMRecipeInfo(i) CRcpAFMRecipeInfo* pRcpAFMRecipeInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserAFMRecipeInfo(i); if(pRcpAFMRecipeInfo == NULL) continue; CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridAFMRecipeInfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0 && pRcpAFMRecipeInfo->m_nZoomIndex > -1) { strItemText = strArrayOption.GetAt(pRcpAFMRecipeInfo->m_nZoomIndex); m_ctrlGridAFMRecipeInfo.SetItemText(nRowIdx, nColIdx, strItemText); } } nColIdx++; } m_ctrlGridAFMRecipeInfo.Invalidate(FALSE); } void CDlgCommon::InitScheduleGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nDataColumnWidth, nMargin; CString strTemp; CRect rect; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg) { nRows = SCHEDULE_INFO_GRID_ROW_COUNT; nCols = SCHEDULE_INFO_GRID_COL_COUNT; nFixRows = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridScheduleInfo.GetWindowRect(&rect); m_ctrlGridScheduleInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridScheduleInfo.SetRowCount(nRows); m_ctrlGridScheduleInfo.SetColumnCount(nCols); m_ctrlGridScheduleInfo.SetFixedRowCount(nFixRows); GV_ITEM Item; nMargin = 5; nDataColumnWidth = (rect.Width() - nMargin) / (SCHEDULE_INFO_GRID_COL_COUNT); Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Total Review"));//_T("Àüü ¸®ºä")); Item.strText = strTemp; m_ctrlGridScheduleInfo.SetItem(&Item); m_ctrlGridScheduleInfo.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("PAD Review (ea)"));//_T("PAD ¸®ºä ¼ö")); Item.strText = strTemp; m_ctrlGridScheduleInfo.SetItem(&Item); m_ctrlGridScheduleInfo.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Review (ea)"));//_T("¸®ºä ¼ö")); Item.strText = strTemp; m_ctrlGridScheduleInfo.SetItem(&Item); m_ctrlGridScheduleInfo.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("WSI (ea)"));//_T("WSI ¼ö")); Item.strText = strTemp; m_ctrlGridScheduleInfo.SetItem(&Item); m_ctrlGridScheduleInfo.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Use Shortest"));//_T("Ãִܰæ·Î")); Item.strText = strTemp; m_ctrlGridScheduleInfo.SetItem(&Item); m_ctrlGridScheduleInfo.SetColumnWidth(nColIdx, nDataColumnWidth); //Àüü ¸®ºä nRowIdx = 1; nColIdx = 0; Item.strText = _T(""); m_ctrlGridScheduleInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCheck)); m_ctrlGridScheduleInfo.SetItemState(nRowIdx, nColIdx, m_ctrlGridScheduleInfo.GetItemState(nRowIdx, nColIdx) | GVIS_READONLY); nColIdx = 4; Item.strText = _T(""); m_ctrlGridScheduleInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCheck)); m_ctrlGridScheduleInfo.SetItemState(nRowIdx, nColIdx, m_ctrlGridScheduleInfo.GetItemState(nRowIdx, nColIdx) | GVIS_READONLY); } } void CDlgCommon::FillScheduleInfo() { int nRowIdx, nColIdx; CString strItemText; const CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; const CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; const CRcpSchedulingInfo* pScheduleInfo = pRsRcpReviewInfo->GetRcpSchedulingInfo(); if (pScheduleInfo == NULL) return; nRowIdx = 1; nColIdx = 0; CGridCellCheck* pCellCheck = NULL; //Àüü ¸®ºä pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleInfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) pCellCheck->SetCheck(pScheduleInfo->GetTacTimeFree()); // PAD Review ÃÖ´ë Æ÷ÀÎÆ® ¼ö strItemText.Format(_T("%d"), pScheduleInfo->GetMaxPadPointCount()); m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText); ////ÅßÀÓ //strItemText.Format(_T("%.3lf"), pScheduleInfo->GetTacTime()); //m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText); // Review ÃÖ´ë Æ÷ÀÎÆ® ¼ö strItemText.Format(_T("%d"), pScheduleInfo->GetMaxPointCount()); m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText); // WSI ÃÖ´ë Æ÷ÀÎÆ® ¼ö strItemText.Format(_T("%d"), pScheduleInfo->GetMaxWsiPointCount()); m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText); // Ãִܰæ·Î »ç¿ë pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleInfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) pCellCheck->SetCheck(pScheduleInfo->GetShortestPath()); strItemText.Format(_T("%d"), pScheduleInfo->GetMaxPointCount()); m_ctrlGridScheduleInfo.SetItemText(nRowIdx, nColIdx++, strItemText); //m_EditControl_GantryPathUse = pRsRcpReviewInfo->GetRcpSchedulingInfo()->GetSingleGantryPath(); m_nradioGantryMode = pRsRcpReviewInfo->GetRcpSchedulingInfo()->GetSingleGantryPath(); m_ctrlGridScheduleInfo.Invalidate(FALSE); } void CDlgCommon::InitScheduleRangeCntGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nDataColumnWidth, nMargin; CString strTemp; CRect rect; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg) { nRows = SCHEDULE_RANGE_CNT_INFO_GRID_ROW_COUNT; nCols = SCHEDULE_RANGE_CNT_INFO_GRID_COL_COUNT; nFixRows = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridScheduleRangeCntInfo.GetWindowRect(&rect); m_ctrlGridScheduleRangeCntInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridScheduleRangeCntInfo.SetRowCount(nRows); m_ctrlGridScheduleRangeCntInfo.SetColumnCount(nCols); m_ctrlGridScheduleRangeCntInfo.SetFixedRowCount(nFixRows); GV_ITEM Item; nMargin = 5; nDataColumnWidth = (rect.Width() - nMargin) / (SCHEDULE_RANGE_CNT_INFO_GRID_COL_COUNT); Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Use Range"));// Range »ç¿ë Item.strText = strTemp; m_ctrlGridScheduleRangeCntInfo.SetItem(&Item); m_ctrlGridScheduleRangeCntInfo.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Left(ea)"));// left count Item.strText = strTemp; m_ctrlGridScheduleRangeCntInfo.SetItem(&Item); m_ctrlGridScheduleRangeCntInfo.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Middle(ea)"));// middle count Item.strText = strTemp; m_ctrlGridScheduleRangeCntInfo.SetItem(&Item); m_ctrlGridScheduleRangeCntInfo.SetColumnWidth(nColIdx, nDataColumnWidth); nColIdx++; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Right(ea)"));// right count Item.strText = strTemp; m_ctrlGridScheduleRangeCntInfo.SetItem(&Item); m_ctrlGridScheduleRangeCntInfo.SetColumnWidth(nColIdx, nDataColumnWidth); // check type nRowIdx = 1; nColIdx = 0; Item.strText = _T(""); m_ctrlGridScheduleRangeCntInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCheck)); m_ctrlGridScheduleRangeCntInfo.SetItemState(nRowIdx, nColIdx, m_ctrlGridScheduleInfo.GetItemState(nRowIdx, nColIdx) | GVIS_READONLY); } } void CDlgCommon::FillScheduleRangeCntInfo() { int nRowIdx, nColIdx; CString strItemText; const CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; const CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return; const CRcpSchedulingInfo* pScheduleInfo = pRsRcpReviewInfo->GetRcpSchedulingInfo(); if (pScheduleInfo == NULL) return; nRowIdx = 1; nColIdx = 0; CGridCellCheck* pCellCheck = NULL; // use pCellCheck = (CGridCellCheck*)m_ctrlGridScheduleRangeCntInfo.GetCell(nRowIdx, nColIdx++); if(pCellCheck) pCellCheck->SetCheck(pScheduleInfo->GetUseRangeCntInfo()); // left range point count strItemText.Format(_T("%d"), pScheduleInfo->GetRangePointCount(Range_Left)); m_ctrlGridScheduleRangeCntInfo.SetItemText(nRowIdx, nColIdx++, strItemText); // middle range point count strItemText.Format(_T("%d"), pScheduleInfo->GetRangePointCount(Range_Middle)); m_ctrlGridScheduleRangeCntInfo.SetItemText(nRowIdx, nColIdx++, strItemText); // right range point count strItemText.Format(_T("%d"), pScheduleInfo->GetRangePointCount(Range_Right)); m_ctrlGridScheduleRangeCntInfo.SetItemText(nRowIdx, nColIdx++, strItemText); m_ctrlGridScheduleRangeCntInfo.Invalidate(FALSE); } void CDlgCommon::InitReflowParameterGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nMargin, nDataColumnWidth; CString strTemp; CRect rect; nRows = REFLOW_PARAMETER_GRID_ROW_COUNT + 1; nCols = REFLOW_PARAMETER_GRID_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridReflowParameter.GetWindowRect(&rect); m_ctrlGridReflowParameter.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridReflowParameter.SetRowCount(nRows); m_ctrlGridReflowParameter.SetColumnCount(nCols); m_ctrlGridReflowParameter.SetFixedRowCount(nFixRows); m_ctrlGridReflowParameter.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("IDX"));//_T("À妽º")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 45); nMargin = 3;//22; // nDataColumnWidth = (rect.Width() - 60 - nMargin) / (USER_DEFECT_INFO_GRID_COL_COUNT - 1); nDataColumnWidth = (rect.Width() - 60 - nMargin - 30*6) / (REFLOW_PARAMETER_GRID_COL_COUNT - 6); Item.col = nColIdx; strTemp.Format(_T("A"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 28); Item.col = nColIdx; strTemp.Format(_T("B"));//_T("Y À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 28); Item.col = nColIdx; strTemp.Format(_T("C"));//_T("Y À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 28); Item.col = nColIdx; strTemp.Format(_T("D"));//_T("Y À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 28); // Item.col = nColIdx; // strTemp.Format(_T("E"));//_T("Y À§Ä¡")); // Item.strText = strTemp; // m_ctrlGridReflowParameter.SetItem(&Item); // m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 30); // // Item.col = nColIdx; // strTemp.Format(_T("Base Th"));//_T("X À§Ä¡")); // Item.strText = strTemp; // m_ctrlGridReflowParameter.SetItem(&Item); // m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, nDataColumnWidth); Item.col = nColIdx; strTemp.Format(_T("Th1"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 30); Item.col = nColIdx; strTemp.Format(_T("Th2"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 30); Item.col = nColIdx; strTemp.Format(_T("Th3"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 30); Item.col = nColIdx; strTemp.Format(_T("Th4"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, 30); Item.col = nColIdx; strTemp.Format(_T("Name"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, nDataColumnWidth+18); Item.col = nColIdx; strTemp.Format(_T("Master"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); m_ctrlGridReflowParameter.SetColumnWidth(nColIdx++, nDataColumnWidth+27); Item.col = 0; Item.row++; strTemp.Format(_T("TOP"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); nRowIdx = 1; nColIdx = 10; m_ctrlGridReflowParameter.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton)); CGridCellButton *pCellButton1 = (CGridCellButton*)m_ctrlGridReflowParameter.GetCell(nRowIdx, nColIdx); pCellButton1->SetText(_T("Browser")); Item.col = 0; Item.row++; strTemp.Format(_T("LEFT"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); nRowIdx = 2; nColIdx = 10; m_ctrlGridReflowParameter.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton)); CGridCellButton *pCellButton2 = (CGridCellButton*)m_ctrlGridReflowParameter.GetCell(nRowIdx, nColIdx); pCellButton2->SetText(_T("Browser")); Item.col = 0; Item.row++; strTemp.Format(_T("RIGHT"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridReflowParameter.SetItem(&Item); nRowIdx = 3; nColIdx = 10; m_ctrlGridReflowParameter.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton)); CGridCellButton *pCellButton3 = (CGridCellButton*)m_ctrlGridReflowParameter.GetCell(nRowIdx, nColIdx); pCellButton3->SetText(_T("Browser")); } void CDlgCommon::FillReflowParameter() { int i, nRowIdx, nColIdx; CString strItemText; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; nRowIdx = 1; for(i = 0; i < REFLOW_PARAMETER_GRID_ROW_COUNT; i++) { nColIdx = 1; const CRsRcpReviewInfo* pRsRcpReviewInfo = pRcpRsReviewManager->GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) continue; const CRcpReflowParameter* pRcpReflowParameter = pRsRcpReviewInfo->GetRcpReflowParameter(i); if (pRcpReflowParameter == NULL) continue; strItemText.Format(_T("%d"), pRcpReflowParameter->m_nAPixel); m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%d"), pRcpReflowParameter->m_nBPixel); m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%d"), pRcpReflowParameter->m_nCPixel); m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDPixel); m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); // strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDam1); // m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); // // // strItemText.Format(_T("%d"), pRcpReflowParameter->m_nBaseTh); // m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDam1Th); m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDam2Th); m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDam3Th); m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%d"), pRcpReflowParameter->m_nDam4Th); m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText = pRcpReflowParameter->m_strMasterFileName; m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); m_nReflowPixelScale = pRcpReflowParameter->m_nPixelScale; nRowIdx++; } m_ctrlGridReflowParameter.Invalidate(FALSE); } void CDlgCommon::InitUserDefectInfoGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols, nMargin, nDataColumnWidth; CString strTemp; CRect rect; nRows = m_nUserDefectCount + 1; nCols = USER_DEFECT_INFO_GRID_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridUserDefectInfo.GetWindowRect(&rect); m_ctrlGridUserDefectInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridUserDefectInfo.SetRowCount(nRows); m_ctrlGridUserDefectInfo.SetColumnCount(nCols); m_ctrlGridUserDefectInfo.SetFixedRowCount(nFixRows); m_ctrlGridUserDefectInfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Idx"));//_T("À妽º")); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 30); nMargin = 22; nDataColumnWidth = (rect.Width() - 40 - 180 - nMargin) / (USER_DEFECT_INFO_GRID_COL_COUNT - 4); // nDataColumnWidth = (rect.Width() - 40 - 60 - 60 - 60 - nMargin) / (USER_DEFECT_INFO_GRID_COL_COUNT - 4); Item.col = nColIdx; strTemp.Format(_T("X(mm)"));//_T("X À§Ä¡")); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, nDataColumnWidth+10); Item.col = nColIdx; strTemp.Format(_T("Y(mm)"));//_T("Y À§Ä¡")); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, nDataColumnWidth+10); Item.col = nColIdx; strTemp.Format(_T("Option"));//_T("Cell Side")); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 50); Item.col = nColIdx; strTemp.Format(_T("Mode"));//_T("Cell Side")); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 60); Item.col = nColIdx; strTemp.Format(_T("A CellID"));//_T("Cell Side")); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 55); Item.col = nColIdx; strTemp.Format(_T("B CellID"));//_T("Cell Side")); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 55); Item.col = nColIdx; strTemp.Format(_T("CellIdx"));//_T("Cell Side")); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 40); /* Item.col = nColIdx; strTemp.Format(_T("Between-BaseLine"));//_T("Y À§Ä¡")); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 60); Item.col = nColIdx; strTemp.Format(_T("BaseLine-Dam2"));//_T("Y À§Ä¡")); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); m_ctrlGridUserDefectInfo.SetColumnWidth(nColIdx++, 60);*/ } void CDlgCommon::FillUserDefectInfo() { int i, nRowIdx, nColIdx, nUserDefectCount; CString strItemText; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; nUserDefectCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserDefectInfoCount(); if(nUserDefectCount > 0) { nRowIdx = 1; m_nUserDefectCount = nUserDefectCount; UpdateData(FALSE); OnEnChangeEditRcpReviewUserDefectCount(); for(i = 0; i < nUserDefectCount; i++) { nColIdx = 1; CRcpUserDefectInfo* pRcpUserDefectInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserDefectInfo(i); if(pRcpUserDefectInfo == NULL) continue; strItemText.Format(_T("%.03lf"), pRcpUserDefectInfo->m_dPosX); m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%.03lf"), pRcpUserDefectInfo->m_dPosY); m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText); CGridCellCombo* pCellCombo = NULL; CStringArray strArrayOption; pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0 && pRcpUserDefectInfo->m_nCellSide > -1) { strItemText = strArrayOption.GetAt(pRcpUserDefectInfo->m_nCellSide); m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx); if(pCellCombo) { strArrayOption.RemoveAll(); pCellCombo->GetOptions(strArrayOption); if(strArrayOption.GetSize() > 0 && pRcpUserDefectInfo->m_nInspectionMode > -1) { strItemText = strArrayOption.GetAt(pRcpUserDefectInfo->m_nInspectionMode); m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } strItemText = pRcpUserDefectInfo->m_strCellId; m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText = pRcpUserDefectInfo->m_strCellId2; m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%d"), pRcpUserDefectInfo->m_nReflowCellIndex); m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText); // strItemText.Format(_T("%d"), pRcpUserDefectInfo->m_nBaseline); // m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText); // strItemText.Format(_T("%d"), pRcpUserDefectInfo->m_nBaseDam2); // m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strItemText); nRowIdx++; } } else { m_nUserDefectCount = 0; UpdateData(FALSE); OnEnChangeEditRcpReviewUserDefectCount(); } m_ctrlGridUserDefectInfo.Invalidate(FALSE); } void CDlgCommon::UpdateDialogData() { CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg) { CRcp_RsReviewManager* pRcpRsReviewManager = NULL; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager) { m_ctrlComboGlassType.SetCurSel(pRcpRsReviewManager->GetRsRcpReviewInfo()->m_nGlassTypeIdx); } m_ctrlComboGlassOrigin.SetCurSel(pRcpRsReviewManager->GetRsRcpReviewInfo()->m_nGlassOrigion); } FillPlanInfo(); FillLightInfoInfo(); FillAFMRecipeInfo(); FillScheduleInfo(); FillScheduleRangeCntInfo(); FillReflowParameter(); FillUserDefectInfo(); Invalidate(FALSE); } void CDlgCommon::OnEnChangeEditRcpReviewPlanCount() { UpdateData(TRUE); int i, j, nRowIdx, nColIdx; CString strTemp; CRect rect; m_ctrlGridPlanInfo.GetWindowRect(&rect); m_ctrlGridPlanInfo.SetRowCount(m_nPlanCount + 1); if(m_nPlanCount > 0) { GV_ITEM Item; CStringArray strArrayOption; CGridCellCombo* pCellCombo = NULL; nRowIdx = 1; nColIdx = 1; for(i = 0; i < m_nPlanCount; i++) { //À妽º nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridPlanInfo.SetItem(&Item); //¸®ºä ¹æ¹ý nColIdx++; strArrayOption.RemoveAll(); // [2017:1:25]-[WEZASW] : SystemMachine_B7E_WSI ¼³ºñ ºÐ¸®(WSI À¯/¹«) for(j = 0; j < REVIEW_PLAN_TYPE_COUNT; j++) { switch(j) { case REVIEW_PLAN_DEFECT: strTemp.Format(_T("Defect Review"));//_T("°áÇÔ ¸®ºä")); strArrayOption.Add(strTemp); break; case REVIEW_PLAN_USER: strTemp.Format(_T("User Review")); //_T("»ç¿ëÀÚ ¸®ºä")); strArrayOption.Add(strTemp); break; case REVIEW_PLAN_WSI: strTemp.Format(_T("WSI Measure")); //_T("WSI ÃøÁ¤")); strArrayOption.Add(strTemp); break; case REVIEW_PLAN_REFLOW: strTemp.Format(_T("Reflow Measure")); //_T("Reflow ÃøÁ¤")); strArrayOption.Add(strTemp); break; case REVIEW_PLAN_MEASURE: strTemp.Format(_T("CD Measure")); //_T("CD ÃøÁ¤")); strArrayOption.Add(strTemp); break; case REVIEW_PLAN_WSI_REFLOW: strTemp.Format(_T("WSI Reflow Measure")); //_T("WSI Reflow ÃøÁ¤")); strArrayOption.Add(strTemp); break; case REVIEW_PLAN_WSI_USER: strTemp.Format(_T("WSI User Measure")); //_T("WSI User ÃøÁ¤")); strArrayOption.Add(strTemp); break; case REVIEW_PLAN_WSI_MultiShot: strTemp.Format(_T("WSI Multi Shot")); //_T("WSI Multi Shot ÃøÁ¤")); strArrayOption.Add(strTemp); break; default: strTemp.Format(_T("")); break; } } m_ctrlGridPlanInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridPlanInfo.GetCell(nRowIdx, nColIdx); pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); nRowIdx++; } } } void CDlgCommon::OnEnChangeEditRcpReviewUserDefectCount() { UpdateData(TRUE); int i, nRowIdx, nColIdx; CString strTemp; CRect rect; m_ctrlGridUserDefectInfo.GetWindowRect(&rect); m_ctrlGridUserDefectInfo.SetRowCount(m_nUserDefectCount + 1); CGridCellCombo* pCellCombo = NULL; CStringArray strArrayOption; if(m_nUserDefectCount > 0) { GV_ITEM Item; nRowIdx = 1; nColIdx = 1; for(i = 0; i < m_nUserDefectCount; i++) { //À妽º nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); strArrayOption.RemoveAll(); for(int j = 0; j < RECIPE_REFLOW_CELLSIDE_COUNT; j++) { strArrayOption.Add(strRecipeReflowCellside[j]); } nColIdx = 3; m_ctrlGridUserDefectInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx); if (pCellCombo) { pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); } strArrayOption.RemoveAll(); for(int j = 0; j < RECIPE_INSPECTIONMODE_COUNT; j++) { strArrayOption.Add(strRecipeInspectionMode[j]); } nColIdx = 4; m_ctrlGridUserDefectInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx); if (pCellCombo) { pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); } nRowIdx++; } } } void CDlgCommon::OnPlanInfoGridClick(NMHDR *pNotifyStruct, LRESULT* pResult) { int nIdx, nPlanIdx, nPlanCount; CString strItemText; CRcpPlanInfo rcpPlanInfo; NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; nIdx = pItem->iRow - 1; if(nIdx >= 0) { m_nSelectPlanIdx = nIdx; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; nPlanCount = (int)pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfoCount(); if(m_nPlanCount != nPlanCount) { pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpPlanInfoCount(m_nPlanCount); for(nPlanIdx = 0; nPlanIdx < m_nPlanCount; nPlanIdx++) { //rcpPlanInfo.Reset(); pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(nPlanIdx)->Reset(); //pRcpRsReviewManager->m_rsRcpReviewInfo.m_vecRcpPlanInfo.push_back(rcpPlanInfo); } } UpdateSelectGlassSlot(); } } void CDlgCommon::UpdateSelectGlassSlot() { if(m_nSelectPlanIdx < 0) return; int i; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; CRcpPlanInfo* pRcpPlanInfo = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpPlanInfo(m_nSelectPlanIdx); for(i = 0; i < TOTAL_GLASS_SLOT_COUNT; i++) { if(pRcpPlanInfo->m_bSelectSlot[i]) { m_ctrlStaticGlassSlot[i]->SetBackground(RGB(0,255,0)); } else { m_ctrlStaticGlassSlot[i]->SetBackground(RGB(240,240,240)); } } } void CDlgCommon::OnSelChange(NMHDR *pNotifyStruct, LRESULT* pResult) { TRACE( _T("_____________________________________\n")); return; int i, nRowIdx, nColIdx, nUserDefectCount; CString strItemText; CRcp_RsReviewManager* pRcpRsReviewManager = NULL; CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; nUserDefectCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpUserDefectInfoCount(); if(nUserDefectCount > 0) { nRowIdx = 1; m_nUserDefectCount = nUserDefectCount; UpdateData(FALSE); for(i = 0; i < REFLOW_PARAMETER_GRID_ROW_COUNT; i++) { nColIdx = 1; CRcpReflowParameter* pRcpReflowParameter = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpReflowParameter(i); if(pRcpReflowParameter == NULL) continue; strItemText.Format(_T("%d"), pRcpReflowParameter->m_nAPixel); m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); strItemText.Format(_T("%d"), pRcpReflowParameter->m_nBPixel); m_ctrlGridReflowParameter.SetItemText(nRowIdx, nColIdx++, strItemText); } } } void CDlgCommon::OnBnClickedButtonLoadMaster() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. // Get image file name LPCTSTR szFilter = _T("Image Files(*.BMP, *.GIF, *.JPG, *.PNG) | *.BMP;*.GIF;*.JPG;*.PNG | All Files(*.*)|*.*||"); CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter); if(IDOK != dlg.DoModal()) return; CString sFilename = dlg.GetPathName(); if(!m_MasterDlg[0]) { m_MasterDlg[0].LoadImage(sFilename); m_MasterDlg[0].Create(IDD_DIALOG_REVIEW_RCP_REFLOW_MASTER_IMAGE, this); m_MasterDlg[0].MoveWindow(0, 0, m_MasterDlg[0].ImageGetWidth(), m_MasterDlg[0].ImageGetHeight() + 50); m_MasterDlg[0].ShowWindow(SW_SHOW); } else { m_MasterDlg[0].LoadImage(sFilename); m_MasterDlg[0].MoveWindow(0, 0, m_MasterDlg[0].ImageGetWidth(), m_MasterDlg[0].ImageGetHeight() + 50); m_MasterDlg[0].ShowWindow(SW_SHOW); m_MasterDlg[0].Invalidate(TRUE); } // if(m_ImageDlg) // { // m_ImageDlg.SetMaster(m_MasterDlg.m_ImageBuffer, m_MasterDlg.ImageGetWidth(), m_MasterDlg.ImageGetHeight(), m_MasterDlg.ImageGetBPP()>>3); // } } void CDlgCommon::OnClickRadioGantryMode(UINT ID) { return; } void CDlgCommon::OnSetMaster(BOOL bSetMaster, int dir, CPoint* reflowPoints) { CString strTemp; if(bSetMaster) // Master Setting Complete { // ¶óÀÎ À§Ä¡ ÀúÀå ½Ã for (int i = 0; i < 4; i ++) { if (dir == RECIPE_REFLOW_CELLSIDE_TOP) { strTemp.Format(_T("%d"), reflowPoints[i].y); } else { strTemp.Format(_T("%d"), reflowPoints[i].x); } m_ctrlGridReflowParameter.SetItemText(dir + 1, i+1, strTemp); } m_ctrlGridReflowParameter.SetItemText(dir + 1, 5, _T("100")); m_ctrlGridReflowParameter.SetItemText(dir + 1, 6, _T("100")); m_ctrlGridReflowParameter.SetItemText(dir + 1, 7, _T("100")); m_ctrlGridReflowParameter.SetItemText(dir + 1, 8, _T("100")); m_ctrlGridReflowParameter.Invalidate(TRUE); } else { // â ´ÝÀ» ¶§ ; } } void CDlgCommon::OnClickImageInfo(NMHDR *pNotifyStruct, LRESULT* pResult) { NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct; if (pItem==NULL) return; if (pItem->iColumn!=10) return; int nIdx = pItem->iRow; if (nIdx<1 || nIdx>3) return; CString szFilter = _T("Image Files(*.BMP, *.GIF, *.JPG, *.PNG) | *.BMP;*.GIF;*.JPG;*.PNG | All Files(*.*)|*.*||"); CString strPath; CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter); if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_TOP) { dlg.m_ofn.lpstrTitle = _T("Select TOP Master Image"); } else if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_LEFT) { dlg.m_ofn.lpstrTitle = _T("Select LEFT Master Image"); } else if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_RIGHT) { dlg.m_ofn.lpstrTitle = _T("Select RIGHT Master Image"); } dlg.m_ofn.lpstrInitialDir = REFLOW_IMAGE_PATH; if(dlg.DoModal() == IDOK) { CString strFilepath = dlg.GetPathName(); CString strFilename = dlg.GetFileName(); if(!m_MasterDlg[nIdx-1]) { m_MasterDlg[nIdx-1].LoadImage(strFilepath); m_MasterDlg[nIdx-1].Create(IDD_DIALOG_REVIEW_RCP_REFLOW_MASTER_IMAGE, this); if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_TOP) { m_MasterDlg[nIdx-1].SetWindowText(_T("TOP Master Image")); } else if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_LEFT) { m_MasterDlg[nIdx-1].SetWindowText(_T("LEFT Master Image")); } else if (nIdx-1 == RECIPE_REFLOW_CELLSIDE_RIGHT) { m_MasterDlg[nIdx-1].SetWindowText(_T("RIGHT Master Image")); } m_MasterDlg[nIdx-1].MoveWindow(0, 0, m_MasterDlg[nIdx-1].ImageGetWidth(), m_MasterDlg[nIdx-1].ImageGetHeight() + 50); m_MasterDlg[nIdx-1].ShowWindow(SW_SHOW); } else { m_MasterDlg[nIdx-1].LoadImage(strFilepath); m_MasterDlg[nIdx-1].MoveWindow(0, 0, m_MasterDlg[nIdx-1].ImageGetWidth(), m_MasterDlg[nIdx-1].ImageGetHeight() + 50); m_MasterDlg[nIdx-1].ShowWindow(SW_SHOW); m_MasterDlg[nIdx-1].Invalidate(TRUE); } m_MasterDlg[nIdx-1].SetDir(nIdx-1); m_ctrlGridReflowParameter.SetItemText(nIdx, 9, strFilename); m_ctrlGridReflowParameter.Invalidate(TRUE); } m_MasterDlg[nIdx-1].SetDlgCommon(this); } void CDlgCommon::OnUserPitch(int xpos, int xpitch, int xcount, int ypos, int ypitch, int ycount, int dir, int mode) { int nOldUserDefectCount = m_nUserDefectCount; m_nUserDefectCount += xcount * ycount; UpdateData(FALSE); UpdateData(TRUE); int i, nRowIdx, nColIdx; CString strTemp; CRect rect; m_ctrlGridUserDefectInfo.GetWindowRect(&rect); m_ctrlGridUserDefectInfo.SetRowCount(m_nUserDefectCount + 1); CGridCellCombo* pCellCombo = NULL; CStringArray strArrayOption; if(m_nUserDefectCount > 0) { GV_ITEM Item; nColIdx = 1; nRowIdx = nOldUserDefectCount+1; // for(i = 0; i < m_nUserDefectCount; i++) // { for (int j = 0; j < ycount; j++) { for (i = 0; i < xcount; i++) { //À妽º nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx++; strTemp.Format(_T("%02d"), nOldUserDefectCount + xcount*j + i); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); // X pos Item.col = nColIdx++; strTemp.Format(_T("%.03f"), (float(xpos+i*xpitch))/1000); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); // Y pos Item.col = nColIdx++; strTemp.Format(_T("%.03f"), (float(ypos+j*ypitch))/1000); Item.strText = strTemp; m_ctrlGridUserDefectInfo.SetItem(&Item); ////////////// CELL SIDE ////////////////// strArrayOption.RemoveAll(); for(int j = 0; j < RECIPE_REFLOW_CELLSIDE_COUNT; j++) { strArrayOption.Add(strRecipeReflowCellside[j]); } m_ctrlGridUserDefectInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx); if (pCellCombo) { pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); } m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strRecipeReflowCellside[dir]); ////////////// INSPECTION MODE ////////////////// strArrayOption.RemoveAll(); for(int j = 0; j < RECIPE_INSPECTIONMODE_COUNT; j++) { strArrayOption.Add(strRecipeInspectionMode[j]); } m_ctrlGridUserDefectInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo)); pCellCombo = (CGridCellCombo*)m_ctrlGridUserDefectInfo.GetCell(nRowIdx, nColIdx); if (pCellCombo) { pCellCombo->SetOptions(strArrayOption); pCellCombo->SetStyle(CBS_DROPDOWN); } m_ctrlGridUserDefectInfo.SetItemText(nRowIdx, nColIdx++, strRecipeInspectionMode[mode]); nRowIdx++; } } } } void CDlgCommon::OnBnClickedButtonUserPitchInput() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CDlgUserPitchInpout dlgpitch; dlgpitch.SetDlgCommon(this); dlgpitch.DoModal(); } void CDlgCommon::OnBnClickedButton4() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CDlgRecipeChange dlgrecipechange; dlgrecipechange.DoModal(); }