// DlgSideDimensionSetting.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "EdgeInspector_App.h" #include "DlgSideDimensionSetting.h" #include "afxdialogex.h" // CDlgSideDimensionSetting ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDlgSideDimensionSetting, CDialogEx) CDlgSideDimensionSetting::CDlgSideDimensionSetting(CWnd* pParent /*=NULL*/) : CDialogEx(CDlgSideDimensionSetting::IDD, pParent) { m_pDlgRecipe = NULL; m_pGlassData = NULL; m_pSelectSideIdx = NULL; } CDlgSideDimensionSetting::~CDlgSideDimensionSetting() { } void CDlgSideDimensionSetting::DoDataExchange(CDataExchange* pDX) { DDX_Control(pDX, IDC_SIDE_DIMENSION_SETTING_LIST, m_SideDimensionSetting); DDX_Control(pDX, IDC_TOP_CORNER_DIMENSION_SETTING_LIST, m_TopCornerDimensionSetting); DDX_Control(pDX, IDC_BOT_CORNER_DIMENSION_SETTING_LIST, m_BotCornerDimensionSetting); CDialogEx::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CDlgSideDimensionSetting, CDialogEx) END_MESSAGE_MAP() BOOL CDlgSideDimensionSetting::PreTranslateMessage(MSG* pMsg) { if( pMsg->message == WM_KEYDOWN ) { if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE ) { ::TranslateMessage(pMsg); ::DispatchMessage(pMsg); return TRUE; // DO NOT process further } } return CDialog::PreTranslateMessage(pMsg); } void CDlgSideDimensionSetting::SetDlgRecipe(CGlassRecipe* pDlgRecipe) { m_pDlgRecipe = pDlgRecipe; UpdateRecipe(FALSE); } void CDlgSideDimensionSetting::UpdateRecipe(BOOL bGetData) { // Title if(m_pSelectSideIdx != NULL) { CString strTemp; strTemp.Format(_T("[%s] Dim. Setting"), g_SideName[(int) *(m_pSelectSideIdx)]); SetDlgItemText(IDC_STATIC_TITLE, strTemp); strTemp.Format(_T("Top Corner [%s] Dim. Setting"), g_SideName[(int) *(m_pSelectSideIdx)]); SetDlgItemText(IDC_STATIC_TITLE_TOP_CORNER, strTemp); strTemp.Format(_T("Bot Corner [%s] Dim. Setting"), g_SideName[(int) *(m_pSelectSideIdx)]); SetDlgItemText(IDC_STATIC_TITLE_BOT_CORNER, strTemp); } if(bGetData == FALSE) { Fill_SideDimensionSetting(bGetData); Fill_TopCornerDimensionSetting(bGetData); Fill_BotCornerDimensionSetting(bGetData); } else { Fill_SideDimensionSetting(bGetData); Fill_TopCornerDimensionSetting(bGetData); Fill_BotCornerDimensionSetting(bGetData); } } void CDlgSideDimensionSetting::Init_SideDimensionSetting() { if (m_SideDimensionSetting.GetSafeHwnd() == NULL) return; int nRows = 1; int nCols = 9 + 3; int nFixRows = 1; int nFixCols = 0; int nRowIdx = 0; int nColIdx = 0; m_SideDimensionSetting.DeleteAllItems(); m_SideDimensionSetting.SetVirtualMode(FALSE); m_SideDimensionSetting.GetDefaultCell(TRUE, FALSE)->SetBackClr(g_nGridFixCellColor); m_SideDimensionSetting.GetDefaultCell(FALSE, TRUE)->SetBackClr(g_nGridFixCellColor); m_SideDimensionSetting.GetDefaultCell(FALSE, FALSE)->SetBackClr(g_nGridCellColor); m_SideDimensionSetting.SetFixedTextColor(g_nGridFixFontColor); m_SideDimensionSetting.SetRowCount(nRows); m_SideDimensionSetting.SetColumnCount(nCols); m_SideDimensionSetting.SetFixedRowCount(nFixRows); m_SideDimensionSetting.SetFixedColumnCount(nFixCols); CFont *pFont = m_SideDimensionSetting.GetFont(); if (pFont) { LOGFONT lf; pFont->GetLogFont(&lf); lf.lfItalic = 0; lf.lfHeight = 14; lf.lfWeight = FW_BOLD; _tcscpy_s(lf.lfFaceName, _T("Arial")); m_SideDimensionSetting.GetDefaultCell(FALSE, TRUE)->SetFont(&lf); m_SideDimensionSetting.GetDefaultCell(TRUE, FALSE)->SetFont(&lf); m_SideDimensionSetting.GetDefaultCell(FALSE, FALSE)->SetFont(&lf); m_SideDimensionSetting.GetDefaultCell(TRUE, TRUE)->SetFont(&lf); } // Col m_SideDimensionSetting.SetColumnWidth(nColIdx, 90); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("No.")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 100); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Top Mark To Y(um)")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Use Dim.")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Thres")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Std(mm)")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Min(mm)")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Max(mm)")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Off(mm)")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Use Chamfer")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Std(mm)")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Min(mm)")); m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Max(mm)")); m_SideDimensionSetting.SetFixedRowSelection(FALSE); m_SideDimensionSetting.SetFixedColumnSelection(FALSE); m_SideDimensionSetting.EnableSelection(TRUE); m_SideDimensionSetting.SetEditable(TRUE); m_SideDimensionSetting.SetRowResize(FALSE); m_SideDimensionSetting.SetColumnResize(FALSE); m_SideDimensionSetting.ExpandColumnsToFit(TRUE); } void CDlgSideDimensionSetting::Fill_SideDimensionSetting(BOOL bGetData) { if(m_SideDimensionSetting.GetSafeHwnd() == NULL) return; if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) return; int nSideIdx = *(m_pSelectSideIdx); if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) return; CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; CString strTemp; int nRow = 0; int nCol = 0; if(bGetData == FALSE) { int nDimensionCount = pParam->m_nSideDimensionCount; m_SideDimensionSetting.SetRowCount(nDimensionCount + 1); for(int i=0; im_nSideDimensionPos_TopMarkToDistance_um[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 3. Use Dimension strTemp.Format(_T("%d"), (int) pParam->m_bSideDimension_Use[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 4. Thres strTemp.Format(_T("%.d"), pParam->m_nSideDimensionSpec_Thres[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 5. Std strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Std[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 6. Min strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Min[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 7. Max strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Max[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 8. Offset strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Off[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 9. Chamfer strTemp.Format(_T("%d"), (int) pParam->m_bSideChamfer_Use[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 10. Std strTemp.Format(_T("%.3f"), pParam->m_dSideChamfer_Spec_mm_Std[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 11. Min strTemp.Format(_T("%.3f"), pParam->m_dSideChamfer_Spec_mm_Min[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 12. Max strTemp.Format(_T("%.3f"), pParam->m_dSideChamfer_Spec_mm_Max[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); } m_SideDimensionSetting.Invalidate(); } else { int nDimensionCount = m_SideDimensionSetting.GetRowCount() - 1; pParam->m_nSideDimensionCount = nDimensionCount; for(int i=0; im_nSideDimensionPos_TopMarkToDistance_um[i] = _wtoi(strTemp); // 3. Use Dimension strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); pParam->m_bSideDimension_Use[i] = (_wtoi(strTemp) == 0) ? FALSE : TRUE; // 4. Thres strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); pParam->m_nSideDimensionSpec_Thres[i] = _wtoi(strTemp); // 5. Std strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dSideDimensionSpec_mm_Std[i] = _wtof(strTemp); // 6. Min strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dSideDimensionSpec_mm_Min[i] = _wtof(strTemp); // 7. Max strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dSideDimensionSpec_mm_Max[i] = _wtof(strTemp); // 8. Offset strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dSideDimensionSpec_mm_Off[i] = _wtof(strTemp); // 9. Chamfer strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); pParam->m_bSideChamfer_Use[i] = (_wtoi(strTemp) == 0) ? FALSE : TRUE; // 10. Std strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dSideChamfer_Spec_mm_Std[i] = _wtof(strTemp); // 11. Min strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dSideChamfer_Spec_mm_Min[i] = _wtof(strTemp); // 12. Max strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dSideChamfer_Spec_mm_Max[i] = _wtof(strTemp); } } } void CDlgSideDimensionSetting::Fill_SideDimensionSetting_CurrentResult() { if(m_SideDimensionSetting.GetSafeHwnd() == NULL) return; if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) return; int nSideIdx = *(m_pSelectSideIdx); if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) return; CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; CString strTemp; int nRow = 0; int nCol = 0; int nDimensionCount = pParam->m_nSideDimensionCount; m_SideDimensionSetting.SetRowCount(nDimensionCount + 1); for(int i=0; im_nSideDimensionPos_TopMarkToDistance_um[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 3. Use Dimension strTemp.Format(_T("%d"), (int) pParam->m_bSideDimension_Use[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 4. Thres strTemp.Format(_T("%d"), (int)pParam->m_nSideDimensionSpec_Thres[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 5. Std double dCutLine_Result = m_pGlassData->GetSideData((DimensionDir) nSideIdx)->m_dSideMeasrue_CutLine_Result_mm[i]; strTemp.Format(_T("%.3f"), dCutLine_Result); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 6. Min strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Min[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 7. Max strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Max[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 8. Offset strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Off[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 9. Chamfer strTemp.Format(_T("%d"), (int) pParam->m_bSideChamfer_Use[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 10. Std double dChamfer_Result = m_pGlassData->GetSideData((DimensionDir) nSideIdx)->m_dSideMeasrue_Chamfer_Result_mm[i]; strTemp.Format(_T("%.3f"), dChamfer_Result); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 11. Min strTemp.Format(_T("%.3f"), pParam->m_dSideChamfer_Spec_mm_Min[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 12. Max strTemp.Format(_T("%.3f"), pParam->m_dSideChamfer_Spec_mm_Max[i]); m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); } m_SideDimensionSetting.Invalidate(); } void CDlgSideDimensionSetting::Init_TopCornerDimensionSetting() { if (m_TopCornerDimensionSetting.GetSafeHwnd() == NULL) return; int nRows = MAX_CORNER_DIMENSION_MEASURE_COUNT + 1; int nCols = 8 + 1; int nFixRows = 1; int nFixCols = 0; int nRowIdx = 0; int nColIdx = 0; m_TopCornerDimensionSetting.DeleteAllItems(); m_TopCornerDimensionSetting.SetVirtualMode(FALSE); m_TopCornerDimensionSetting.GetDefaultCell(TRUE, FALSE)->SetBackClr(g_nGridFixCellColor); m_TopCornerDimensionSetting.GetDefaultCell(FALSE, TRUE)->SetBackClr(g_nGridFixCellColor); m_TopCornerDimensionSetting.GetDefaultCell(FALSE, FALSE)->SetBackClr(g_nGridCellColor); m_TopCornerDimensionSetting.SetFixedTextColor(g_nGridFixFontColor); m_TopCornerDimensionSetting.SetRowCount(nRows); m_TopCornerDimensionSetting.SetColumnCount(nCols); m_TopCornerDimensionSetting.SetFixedRowCount(nFixRows); m_TopCornerDimensionSetting.SetFixedColumnCount(nFixCols); CFont *pFont = m_TopCornerDimensionSetting.GetFont(); if (pFont) { LOGFONT lf; pFont->GetLogFont(&lf); lf.lfItalic = 0; lf.lfHeight = 14; lf.lfWeight = FW_BOLD; _tcscpy_s(lf.lfFaceName, _T("Arial")); m_TopCornerDimensionSetting.GetDefaultCell(FALSE, TRUE)->SetFont(&lf); m_TopCornerDimensionSetting.GetDefaultCell(TRUE, FALSE)->SetFont(&lf); m_TopCornerDimensionSetting.GetDefaultCell(FALSE, FALSE)->SetFont(&lf); m_TopCornerDimensionSetting.GetDefaultCell(TRUE, TRUE)->SetFont(&lf); } // Col m_TopCornerDimensionSetting.SetColumnWidth(nColIdx, 100); m_TopCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("No.")); m_TopCornerDimensionSetting.SetColumnWidth(nColIdx, 90); m_TopCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Use Dim.")); m_TopCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_TopCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Std(mm)")); m_TopCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_TopCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Min(mm)")); m_TopCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_TopCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Max(mm)")); m_TopCornerDimensionSetting.SetColumnWidth(nColIdx, 90); m_TopCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Use Chamfer")); m_TopCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_TopCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Std(mm)")); m_TopCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_TopCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Min(mm)")); m_TopCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_TopCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Max(mm)")); m_TopCornerDimensionSetting.SetFixedRowSelection(FALSE); m_TopCornerDimensionSetting.SetFixedColumnSelection(FALSE); m_TopCornerDimensionSetting.EnableSelection(TRUE); m_TopCornerDimensionSetting.SetEditable(TRUE); m_TopCornerDimensionSetting.SetRowResize(FALSE); m_TopCornerDimensionSetting.SetColumnResize(FALSE); m_TopCornerDimensionSetting.ExpandColumnsToFit(TRUE); } void CDlgSideDimensionSetting::Fill_TopCornerDimensionSetting(BOOL bGetData) { if(m_TopCornerDimensionSetting.GetSafeHwnd() == NULL) return; if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) return; int nSideIdx = *(m_pSelectSideIdx); if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) return; CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; CString strTemp; int nRow = 0; int nCol = 0; if(bGetData == FALSE) { for(int i=0; im_bTopCornerDimension_Use[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 3. Std strTemp.Format(_T("%.3f"), pParam->m_dTopCornerDimensionSpec_mm_Std[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 4. Min strTemp.Format(_T("%.3f"), pParam->m_dTopCornerDimensionSpec_mm_Min[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 5. Max strTemp.Format(_T("%.3f"), pParam->m_dTopCornerDimensionSpec_mm_Max[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 6. Chamfer strTemp.Format(_T("%d"), (int) pParam->m_bTopCornerChamfer_Use[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 7. Std strTemp.Format(_T("%.3f"), pParam->m_dTopCornerChamfer_Spec_mm_Std[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 8. Min strTemp.Format(_T("%.3f"), pParam->m_dTopCornerChamfer_Spec_mm_Min[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 9. Max strTemp.Format(_T("%.3f"), pParam->m_dTopCornerChamfer_Spec_mm_Max[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); } m_TopCornerDimensionSetting.Invalidate(); } else { for(int i=0; im_bTopCornerDimension_Use[i] = (_wtoi(strTemp) == 0) ? FALSE : TRUE; // 3. Std strTemp = m_TopCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dTopCornerDimensionSpec_mm_Std[i] = _wtof(strTemp); // 4. Min strTemp = m_TopCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dTopCornerDimensionSpec_mm_Min[i] = _wtof(strTemp); // 5. Max strTemp = m_TopCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dTopCornerDimensionSpec_mm_Max[i] = _wtof(strTemp); // 6. Chamfer strTemp = m_TopCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_bTopCornerChamfer_Use[i] = (_wtoi(strTemp) == 0) ? FALSE : TRUE; // 7. Std strTemp = m_TopCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dTopCornerChamfer_Spec_mm_Std[i] = _wtof(strTemp); // 8. Min strTemp = m_TopCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dTopCornerChamfer_Spec_mm_Min[i] = _wtof(strTemp); // 9. Max strTemp = m_TopCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dTopCornerChamfer_Spec_mm_Max[i] = _wtof(strTemp); } } } void CDlgSideDimensionSetting::Fill_TopCornerDimensionSetting_CurrentResult() { if(m_TopCornerDimensionSetting.GetSafeHwnd() == NULL) return; if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) return; int nSideIdx = *(m_pSelectSideIdx); if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) return; CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; CString strTemp; int nRow = 0; int nCol = 0; for(int i=0; im_bTopCornerDimension_Use[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 3. Std double dCutLine_Result = m_pGlassData->GetSideData((DimensionDir) nSideIdx)->m_dTopCornerMeasrue_CutLine_Result_mm[i]; strTemp.Format(_T("%.3f"), dCutLine_Result); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 4. Min strTemp.Format(_T("%.3f"), pParam->m_dTopCornerDimensionSpec_mm_Min[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 5. Max strTemp.Format(_T("%.3f"), pParam->m_dTopCornerDimensionSpec_mm_Max[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 6. Chamfer strTemp.Format(_T("%d"), (int) pParam->m_bTopCornerChamfer_Use[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 7. Std double dChamfer_Result = m_pGlassData->GetSideData((DimensionDir) nSideIdx)->m_dTopCornerMeasrue_Chamfer_Result_mm[i]; strTemp.Format(_T("%.3f"), dChamfer_Result); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 8. Min strTemp.Format(_T("%.3f"), pParam->m_dTopCornerChamfer_Spec_mm_Min[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 9. Max strTemp.Format(_T("%.3f"), pParam->m_dTopCornerChamfer_Spec_mm_Max[i]); m_TopCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); } m_TopCornerDimensionSetting.Invalidate(); } void CDlgSideDimensionSetting::Init_BotCornerDimensionSetting() { if (m_BotCornerDimensionSetting.GetSafeHwnd() == NULL) return; int nRows = MAX_CORNER_DIMENSION_MEASURE_COUNT + 1; int nCols = 8 + 1; int nFixRows = 1; int nFixCols = 0; int nRowIdx = 0; int nColIdx = 0; m_BotCornerDimensionSetting.DeleteAllItems(); m_BotCornerDimensionSetting.SetVirtualMode(FALSE); m_BotCornerDimensionSetting.GetDefaultCell(TRUE, FALSE)->SetBackClr(g_nGridFixCellColor); m_BotCornerDimensionSetting.GetDefaultCell(FALSE, TRUE)->SetBackClr(g_nGridFixCellColor); m_BotCornerDimensionSetting.GetDefaultCell(FALSE, FALSE)->SetBackClr(g_nGridCellColor); m_BotCornerDimensionSetting.SetFixedTextColor(g_nGridFixFontColor); m_BotCornerDimensionSetting.SetRowCount(nRows); m_BotCornerDimensionSetting.SetColumnCount(nCols); m_BotCornerDimensionSetting.SetFixedRowCount(nFixRows); m_BotCornerDimensionSetting.SetFixedColumnCount(nFixCols); CFont *pFont = m_BotCornerDimensionSetting.GetFont(); if (pFont) { LOGFONT lf; pFont->GetLogFont(&lf); lf.lfItalic = 0; lf.lfHeight = 14; lf.lfWeight = FW_BOLD; _tcscpy_s(lf.lfFaceName, _T("Arial")); m_BotCornerDimensionSetting.GetDefaultCell(FALSE, TRUE)->SetFont(&lf); m_BotCornerDimensionSetting.GetDefaultCell(TRUE, FALSE)->SetFont(&lf); m_BotCornerDimensionSetting.GetDefaultCell(FALSE, FALSE)->SetFont(&lf); m_BotCornerDimensionSetting.GetDefaultCell(TRUE, TRUE)->SetFont(&lf); } // Col m_BotCornerDimensionSetting.SetColumnWidth(nColIdx, 100); m_BotCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("No.")); m_BotCornerDimensionSetting.SetColumnWidth(nColIdx, 90); m_BotCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Use Dim")); m_BotCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_BotCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Std (mm)")); m_BotCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_BotCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Min (mm)")); m_BotCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_BotCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Max (mm)")); m_BotCornerDimensionSetting.SetColumnWidth(nColIdx, 90); m_BotCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Use Chamfer")); m_BotCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_BotCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Std (mm)")); m_BotCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_BotCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Min (mm)")); m_BotCornerDimensionSetting.SetColumnWidth(nColIdx, 80); m_BotCornerDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Max (mm)")); m_BotCornerDimensionSetting.SetFixedRowSelection(FALSE); m_BotCornerDimensionSetting.SetFixedColumnSelection(FALSE); m_BotCornerDimensionSetting.EnableSelection(TRUE); m_BotCornerDimensionSetting.SetEditable(TRUE); m_BotCornerDimensionSetting.SetRowResize(FALSE); m_BotCornerDimensionSetting.SetColumnResize(FALSE); m_BotCornerDimensionSetting.ExpandColumnsToFit(TRUE); } void CDlgSideDimensionSetting::Fill_BotCornerDimensionSetting(BOOL bGetData) { if(m_BotCornerDimensionSetting.GetSafeHwnd() == NULL) return; if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) return; int nSideIdx = *(m_pSelectSideIdx); if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) return; CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; CString strTemp; int nRow = 0; int nCol = 0; if(bGetData == FALSE) { for(int i=0; im_bBottomCornerDimension_Use[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 3. Std strTemp.Format(_T("%.3f"), pParam->m_dBottomCornerDimensionSpec_mm_Std[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 4. Min strTemp.Format(_T("%.3f"), pParam->m_dBottomCornerDimensionSpec_mm_Min[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 5. Max strTemp.Format(_T("%.3f"), pParam->m_dBottomCornerDimensionSpec_mm_Max[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 6. Chamfer strTemp.Format(_T("%d"), (int) pParam->m_bBottomCornerChamfer_Use[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 7. Std strTemp.Format(_T("%.3f"), pParam->m_dBottomCornerChamfer_Spec_mm_Std[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 8. Min strTemp.Format(_T("%.3f"), pParam->m_dBottomCornerChamfer_Spec_mm_Min[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 9. Max strTemp.Format(_T("%.3f"), pParam->m_dBottomCornerChamfer_Spec_mm_Max[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); } m_BotCornerDimensionSetting.Invalidate(); } else { for(int i=0; im_bBottomCornerDimension_Use[i] = (_wtoi(strTemp) == 0) ? FALSE : TRUE; // 3. Std strTemp = m_BotCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dBottomCornerDimensionSpec_mm_Std[i] = _wtof(strTemp); // 4. Min strTemp = m_BotCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dBottomCornerDimensionSpec_mm_Min[i] = _wtof(strTemp); // 5. Max strTemp = m_BotCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dBottomCornerDimensionSpec_mm_Max[i] = _wtof(strTemp); // 6. Chamfer strTemp = m_BotCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_bBottomCornerChamfer_Use[i] = (_wtoi(strTemp) == 0) ? FALSE : TRUE; // 7. Std strTemp = m_BotCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dBottomCornerChamfer_Spec_mm_Std[i] = _wtof(strTemp); // 8. Min strTemp = m_BotCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dBottomCornerChamfer_Spec_mm_Min[i] = _wtof(strTemp); // 9. Max strTemp = m_BotCornerDimensionSetting.GetItemText(nRow, nCol++); pParam->m_dBottomCornerChamfer_Spec_mm_Max[i] = _wtof(strTemp); } } } void CDlgSideDimensionSetting::Fill_BotCornerDimensionSetting_CurrentResult() { if(m_BotCornerDimensionSetting.GetSafeHwnd() == NULL) return; if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) return; int nSideIdx = *(m_pSelectSideIdx); if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) return; CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; CString strTemp; int nRow = 0; int nCol = 0; for(int i=0; im_bBottomCornerDimension_Use[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 3. Std double dCutLine_Result = m_pGlassData->GetSideData((DimensionDir) nSideIdx)->m_dBotCornerMeasrue_CutLine_Result_mm[i]; strTemp.Format(_T("%.3f"), dCutLine_Result); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 4. Min strTemp.Format(_T("%.3f"), pParam->m_dBottomCornerDimensionSpec_mm_Min[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 5. Max strTemp.Format(_T("%.3f"), pParam->m_dBottomCornerDimensionSpec_mm_Max[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 6. Chamfer strTemp.Format(_T("%d"), (int) pParam->m_bBottomCornerChamfer_Use[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 7. Std double dChamfer_Result = m_pGlassData->GetSideData((DimensionDir) nSideIdx)->m_dBotCornerMeasrue_Chamfer_Result_mm[i]; strTemp.Format(_T("%.3f"), dChamfer_Result); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 8. Min strTemp.Format(_T("%.3f"), pParam->m_dBottomCornerChamfer_Spec_mm_Min[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); // 9. Max strTemp.Format(_T("%.3f"), pParam->m_dBottomCornerChamfer_Spec_mm_Max[i]); m_BotCornerDimensionSetting.SetItemText(nRow, nCol++, strTemp); } m_BotCornerDimensionSetting.Invalidate(); } BOOL CDlgSideDimensionSetting::OnInitDialog() { CDialogEx::OnInitDialog(); Init_SideDimensionSetting(); Init_TopCornerDimensionSetting(); Init_BotCornerDimensionSetting(); return TRUE; } BEGIN_EVENTSINK_MAP(CDlgSideDimensionSetting, CDialogEx) ON_EVENT(CDlgSideDimensionSetting, IDC_BUTTON_ADD, DISPID_CLICK, CDlgSideDimensionSetting::ClickButtonAdd, VTS_NONE) ON_EVENT(CDlgSideDimensionSetting, IDC_BUTTON_DEL, DISPID_CLICK, CDlgSideDimensionSetting::ClickButtonDel, VTS_NONE) ON_EVENT(CDlgSideDimensionSetting, IDC_BUTTON_CAL, DISPID_CLICK, CDlgSideDimensionSetting::ClickButtonCal, VTS_NONE) ON_EVENT(CDlgSideDimensionSetting, IDC_BUTTON_GET_SIDE_RESULT, DISPID_CLICK, CDlgSideDimensionSetting::ClickButtonGetSideResult, VTS_NONE) ON_EVENT(CDlgSideDimensionSetting, IDC_BUTTON_GET_TOP_CORNER_RESULT, DISPID_CLICK, CDlgSideDimensionSetting::ClickButtonGetTopCornerResult, VTS_NONE) ON_EVENT(CDlgSideDimensionSetting, IDC_BUTTON_GET_BOT_CORNER_RESULT, DISPID_CLICK, CDlgSideDimensionSetting::ClickButtonGetBotCornerResult, VTS_NONE) END_EVENTSINK_MAP() void CDlgSideDimensionSetting::ClickButtonAdd() { if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) return; int nSideIdx = *(m_pSelectSideIdx); if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) return; CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; int nAddIdx = pParam->m_nSideDimensionCount; if(nAddIdx < 0 || MAX_SIDE_DIMENSION_MEASURE_COUNT <= nAddIdx) { CString strMsg; strMsg.Format(_T("Max Dimension Measure Count : %d ea"), MAX_SIDE_DIMENSION_MEASURE_COUNT); AfxMessageBox(strMsg); return; } pParam->m_nSideDimensionPos_TopMarkToDistance_um[nAddIdx] = 0; pParam->m_dSideDimensionSpec_mm_Min[nAddIdx] = 0; pParam->m_dSideDimensionSpec_mm_Max[nAddIdx] = 0; pParam->m_dSideDimensionSpec_mm_Off[nAddIdx] = 0; pParam->m_nSideDimensionCount = nAddIdx + 1; UpdateRecipe(FALSE); } void CDlgSideDimensionSetting::ClickButtonDel() { if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) return; int nSideIdx = *(m_pSelectSideIdx); if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) return; CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; int nSideDimensionCount = pParam->m_nSideDimensionCount; CCellID FocusedID = m_SideDimensionSetting.GetFocusCell(); int nDelIdx = FocusedID.row - 1; if(nDelIdx < 0 || nSideDimensionCount <= nDelIdx) { AfxMessageBox(_T("Select Error")); return; } int nPosIdx = 0; for(int i=0; im_nSideDimensionPos_TopMarkToDistance_um[nPosIdx] = pParam->m_nSideDimensionPos_TopMarkToDistance_um[i]; pParam->m_dSideDimensionSpec_mm_Min[nPosIdx] = pParam->m_dSideDimensionSpec_mm_Min[i]; pParam->m_dSideDimensionSpec_mm_Max[nPosIdx] = pParam->m_dSideDimensionSpec_mm_Max[i]; pParam->m_dSideDimensionSpec_mm_Off[nPosIdx] = pParam->m_dSideDimensionSpec_mm_Off[i]; nPosIdx++; } pParam->m_nSideDimensionCount = nSideDimensionCount - 1; UpdateRecipe(FALSE); } void CDlgSideDimensionSetting::ClickButtonCal() { UpdateRecipe(TRUE); if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) return; int nSideIdx = *(m_pSelectSideIdx); if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) return; CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; int nSideDimensionCount = pParam->m_nSideDimensionCount; if(nSideDimensionCount < 2) { AfxMessageBox(_T("Error, Count < 2")); return; } int nStart = pParam->m_nSideDimensionPos_TopMarkToDistance_um[0]; int nEnd = pParam->m_nSideDimensionPos_TopMarkToDistance_um[nSideDimensionCount -1]; if((nEnd - nStart) == 0) { AfxMessageBox(_T("End - Start is 0")); return; } double dStep = (double)((nEnd - nStart)) / (double)((nSideDimensionCount-1)); for(int i=0; im_nSideDimensionPos_TopMarkToDistance_um[i] = (nStart + (int)((dStep * i))); } UpdateRecipe(FALSE); } void CDlgSideDimensionSetting::ClickButtonGetSideResult() { if(m_pGlassData == NULL) return; if(IDYES != AfxMessageBox(_T("Set Current Result ?"), MB_YESNO)) return; Fill_SideDimensionSetting_CurrentResult(); } void CDlgSideDimensionSetting::ClickButtonGetTopCornerResult() { if(m_pGlassData == NULL) return; if(IDYES != AfxMessageBox(_T("Set Current Result ?"), MB_YESNO)) return; Fill_TopCornerDimensionSetting_CurrentResult(); } void CDlgSideDimensionSetting::ClickButtonGetBotCornerResult() { if(m_pGlassData == NULL) return; if(IDYES != AfxMessageBox(_T("Set Current Result ?"), MB_YESNO)) return; Fill_BotCornerDimensionSetting_CurrentResult(); }