// DlgSelfDiagnosis.cpp: 구현 파일 // #include "stdafx.h" #include "ReviewSystem.h" #include "DlgSelfDiagnosis.h" #include "afxdialogex.h" // CDlgSelfDiagnosis 대화 상자 IMPLEMENT_DYNAMIC(CDlgSelfDiagnosis, CDialogEx) CDlgSelfDiagnosis::CDlgSelfDiagnosis(CDiagnosisManager* pDiagnosisManager, CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_DLG_SELF_DIAGNOSIS, pParent) { m_pDiagnosisManager = pDiagnosisManager; m_nTapSelIndex = -1; } CDlgSelfDiagnosis::~CDlgSelfDiagnosis() { } void CDlgSelfDiagnosis::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_SELF_DIAGNOSIS_TAB_MAIN, m_ctrlTabCtrl); } BEGIN_MESSAGE_MAP(CDlgSelfDiagnosis, CDialogEx) ON_NOTIFY(TCN_SELCHANGE, IDC_SELF_DIAGNOSIS_TAB_MAIN, &CDlgSelfDiagnosis::OnTcnSelchangeSelfDiagnosisTabMain) END_MESSAGE_MAP() // CDlgSelfDiagnosis 메시지 처리기 void CDlgSelfDiagnosis::UpdateDialog(int nIndex) { if (nIndex < 0) // all { m_pDlgSquareness->UpdateDialogControls(); } else { switch (nIndex) { case 0: m_pDlgSquareness->UpdateDialogControls(); //m_pDlgSquareness->InitListControl(); //taek 210105 break; case 1: m_pDlgWsi->UpdateWSIResult(); break; case 2: m_pDlgFlatness->InitListCtrl(); break; case 3: m_pDlgSquareness->DisableBtSIMULATION(TRUE); break; case 4: m_pDlgSquareness->DisableBtSIMULATION(FALSE); break; case 5: m_pDlgWsi->DisableBtSIMULATION(TRUE); break; case 6: m_pDlgWsi->DisableBtSIMULATION(FALSE); break; case 7: //m_pDlgWsi->UpdateWSIResult(0, 0, 0, 0, 0); //m_pDlgWsi->UpdateWSIResult(1, 0, 0, 0, 0); default: break; } } } void CDlgSelfDiagnosis::SetDlgFlatness(int nIndex) { if (m_pDlgFlatness) { m_pDlgFlatness->ChangeRadioButton(nIndex); m_pDlgFlatness->ChangeGridResultData(); } } void CDlgSelfDiagnosis::SetDlgSquareness(int nIndex) { if (m_pDlgSquareness) { m_pDlgSquareness->ChangeResultData(); //taek 210105 } } void CDlgSelfDiagnosis::SetDlgWSI(int nIndex) { if (m_pDlgWsi) { m_pDlgWsi->ChangeResultData(); //taek 210105 } } BOOL CDlgSelfDiagnosis::OnInitDialog() { CDialogEx::OnInitDialog(); // TODO: 여기에 추가 초기화 작업을 추가합니다. if (m_pDiagnosisManager == NULL) return FALSE; // load config fild CString strFilePath = _T(""); strFilePath.Format(_T("%s\\%s"), REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH, REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_NAME); m_pDiagnosisManager->LoadSettingConfigFile(strFilePath); // load standard result file CString strStandardFile = _T(""); strStandardFile.Format(_T("%s\\%s"), REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH, REVIEW_AUTO_DIAGNOSIS_STANDARD_FILE_NAME); CFileFind fileFind; if (fileFind.FindFile(strStandardFile) == FALSE) AfxMessageBox(_T("Setting Standard Data!!")); else { if (m_pDiagnosisManager->LoadDiagnosisFile(strStandardFile)) m_pDiagnosisManager->SetExistStandardData(); } m_ctrlTabCtrl.InsertItem(0, _T("직각도")); m_ctrlTabCtrl.InsertItem(1, _T("평탄도")); m_ctrlTabCtrl.InsertItem(2, _T("WSI")); m_ctrlTabCtrl.InsertItem(3, _T("SETTING")); m_ctrlTabCtrl.SetCurSel(0); m_nTapSelIndex = m_ctrlTabCtrl.GetCurSel(); CRect rect; m_ctrlTabCtrl.GetWindowRect(&rect); m_pDlgSquareness = new CDlgSelfDiagnosis_Squareness(m_pDiagnosisManager); m_pDlgSquareness->Create(IDD_DLG_SELF_DIAGNOSIS_SQUARENESS, &m_ctrlTabCtrl); m_pDlgSquareness->MoveWindow(5, 25, rect.Width() - 10, rect.Height() - 30); m_pDlgSquareness->ShowWindow(SW_SHOW); m_pDlgFlatness = new CDlgSelfDiagnosis_Flatness(m_pDiagnosisManager); m_pDlgFlatness->Create(IDD_DLG_SELF_DIAGNOSIS_FLATNESS, &m_ctrlTabCtrl); m_pDlgFlatness->MoveWindow(5, 25, rect.Width() - 10, rect.Height() - 30); m_pDlgFlatness->ShowWindow(SW_HIDE); m_pDlgWsi = new CDlgSelfDiagnosis_Wsi(m_pDiagnosisManager); m_pDlgWsi->Create(IDD_DLG_SELF_DIAGNOSIS_WSI, &m_ctrlTabCtrl); m_pDlgWsi->MoveWindow(5, 25, rect.Width() - 10, rect.Height() - 30); m_pDlgWsi->ShowWindow(SW_HIDE); m_pDlgSetting = new CDlgSelfDiagnosis_Setting(m_pDiagnosisManager); m_pDlgSetting->Create(IDD_DLG_SELF_DIAGNOSIS_SETTING, &m_ctrlTabCtrl); m_pDlgSetting->MoveWindow(5, 25, rect.Width() - 10, rect.Height() - 30); m_pDlgSetting->ShowWindow(SW_HIDE); return TRUE; // return TRUE unless you set the focus to a control // 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다. } void CDlgSelfDiagnosis::OnTcnSelchangeSelfDiagnosisTabMain(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. //int nSelIndex = m_ctrlTabCtrl.GetCurSel(); m_nTapSelIndex = m_ctrlTabCtrl.GetCurSel(); switch (m_nTapSelIndex) { case 0: m_pDlgSquareness->InitListControl(); //taek 210105 m_pDlgSquareness->ShowWindow(SW_SHOW); m_pDlgFlatness->ShowWindow(SW_HIDE); m_pDlgWsi->ShowWindow(SW_HIDE); m_pDlgSetting->ShowWindow(SW_HIDE); break; case 1: m_pDlgFlatness->InitListCtrl(); m_pDlgSquareness->ShowWindow(SW_HIDE); m_pDlgFlatness->ShowWindow(SW_SHOW); m_pDlgWsi->ShowWindow(SW_HIDE); m_pDlgSetting->ShowWindow(SW_HIDE); break; case 2: m_pDlgSquareness->ShowWindow(SW_HIDE); m_pDlgFlatness->ShowWindow(SW_HIDE); m_pDlgWsi->ShowWindow(SW_SHOW); m_pDlgSetting->ShowWindow(SW_HIDE); break; case 3: m_pDlgSquareness->ShowWindow(SW_HIDE); m_pDlgFlatness->ShowWindow(SW_HIDE); m_pDlgWsi->ShowWindow(SW_HIDE); m_pDlgSetting->ShowWindow(SW_SHOW); break; } *pResult = 0; }