// PathSettingDlg.cpp: 구현 파일 // #include "stdafx.h" #include "ReveiwHistory.h" #include "PathSettingDlg.h" #include "afxdialogex.h" #define PathSettingFilePath ( _T("PathSetting.ini") ) // CPathSettingDlg 대화 상자 IMPLEMENT_DYNAMIC(CPathSettingDlg, CDialogEx) CPathSettingDlg::CPathSettingDlg(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_DLG_PATH_SETTING, pParent) { m_strBinPath.Empty(); m_strInspectorPath.Empty(); m_strReviewPath.Empty(); m_strAlignPath.Empty(); } CPathSettingDlg::~CPathSettingDlg() { } void CPathSettingDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_COMBO_OFFSET_DIRECTION_X, m_comboDirectionX); DDX_Control(pDX, IDC_COMBO_OFFSET_DIRECTION_Y, m_comboDirectionY); } BEGIN_MESSAGE_MAP(CPathSettingDlg, CDialogEx) ON_BN_CLICKED(IDC_BTN_BIN_PATH, &CPathSettingDlg::OnBnClickedBtnBinPath) ON_BN_CLICKED(IDC_BTN_INSPECTOR_PATH, &CPathSettingDlg::OnBnClickedBtnInspectorPath) ON_BN_CLICKED(IDC_BTN_REVIEW_PATH, &CPathSettingDlg::OnBnClickedBtnReviewPath) ON_BN_CLICKED(IDC_BTN_ALIGN_PATH, &CPathSettingDlg::OnBnClickedBtnAlignPath) ON_BN_CLICKED(IDC_BTN_SAVE, &CPathSettingDlg::OnBnClickedBtnSave) ON_BN_CLICKED(IDCANCEL, &CPathSettingDlg::OnBnClickedCancel) END_MESSAGE_MAP() // CPathSettingDlg 메시지 처리기 BOOL CPathSettingDlg::Create(CWnd* pParentWnd) { return CDialogEx::Create(IDD, pParentWnd); } BOOL CPathSettingDlg::PreTranslateMessage(MSG* pMsg) { // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다. if (pMsg->message == WM_KEYDOWN) { if (pMsg->wParam == VK_ESCAPE) { ShowWindow(SW_HIDE); return TRUE; } } return __super::PreTranslateMessage(pMsg); } void CPathSettingDlg::OnDestroy() { CDialogEx::OnDestroy(); } void CPathSettingDlg::OnShowWindow(BOOL bShow, UINT nStatus) { __super::OnShowWindow(bShow, nStatus); // TODO: 여기에 메시지 처리기 코드를 추가합니다. if (TRUE == bShow) { } } void CPathSettingDlg::OnBnClickedBtnBinPath() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. ITEMIDLIST *pidlBrowse; CString strPath; BROWSEINFO BrInfo; BrInfo.hwndOwner = GetSafeHwnd(); BrInfo.pidlRoot = NULL; memset(&BrInfo, 0, sizeof(BrInfo)); BrInfo.lpszTitle = _T("Please select a folder that contains Bin files"); BrInfo.ulFlags = BIF_RETURNONLYFSDIRS; pidlBrowse = SHBrowseForFolder(&BrInfo); TCHAR szPathName[200]; ::SHGetPathFromIDList(pidlBrowse, szPathName); CString strTmpPath = (LPCTSTR)szPathName; CFileFind finder; BOOL bFindPath = finder.FindFile(strTmpPath); if (bFindPath) { SetDlgItemText(IDC_EDIT_BIN_PATH, strTmpPath); } LOG(Dbg, _T("[PathSetting] Bin Path Setting")); } void CPathSettingDlg::OnBnClickedBtnInspectorPath() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. ITEMIDLIST *pidlBrowse; CString strPath; BROWSEINFO BrInfo; BrInfo.hwndOwner = GetSafeHwnd(); BrInfo.pidlRoot = NULL; memset(&BrInfo, 0, sizeof(BrInfo)); BrInfo.lpszTitle = _T("Please select a folder that contains Inspector Image files"); BrInfo.ulFlags = BIF_RETURNONLYFSDIRS; pidlBrowse = SHBrowseForFolder(&BrInfo); TCHAR szPathName[200]; ::SHGetPathFromIDList(pidlBrowse, szPathName); CString strTmpPath = (LPCTSTR)szPathName; CFileFind finder; BOOL bFindPath = finder.FindFile(strTmpPath); if (bFindPath) { SetDlgItemText(IDC_EDIT_INSPECTOR_PATH, strTmpPath); } LOG(Dbg, _T("[PathSetting] Align Inspector Setting")); } void CPathSettingDlg::OnBnClickedBtnReviewPath() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. ITEMIDLIST *pidlBrowse; CString strPath; BROWSEINFO BrInfo; BrInfo.hwndOwner = GetSafeHwnd(); BrInfo.pidlRoot = NULL; memset(&BrInfo, 0, sizeof(BrInfo)); BrInfo.lpszTitle = _T("Please select a folder that contains Review Image files"); BrInfo.ulFlags = BIF_RETURNONLYFSDIRS; pidlBrowse = SHBrowseForFolder(&BrInfo); TCHAR szPathName[200]; ::SHGetPathFromIDList(pidlBrowse, szPathName); CString strTmpPath = (LPCTSTR)szPathName; CFileFind finder; BOOL bFindPath = finder.FindFile(strTmpPath); if (bFindPath) { SetDlgItemText(IDC_EDIT_REVIEW_PATH, strTmpPath); } LOG(Dbg, _T("[PathSetting] Review Path Setting")); } void CPathSettingDlg::OnBnClickedBtnAlignPath() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. ITEMIDLIST *pidlBrowse; CString strPath; BROWSEINFO BrInfo; BrInfo.hwndOwner = GetSafeHwnd(); BrInfo.pidlRoot = NULL; memset(&BrInfo, 0, sizeof(BrInfo)); BrInfo.lpszTitle = _T("Please select a folder that contains Align Image files"); BrInfo.ulFlags = BIF_RETURNONLYFSDIRS; pidlBrowse = SHBrowseForFolder(&BrInfo); TCHAR szPathName[200]; ::SHGetPathFromIDList(pidlBrowse, szPathName); CString strTmpPath = (LPCTSTR)szPathName; CFileFind finder; BOOL bFindPath = finder.FindFile(strTmpPath); if (bFindPath) { SetDlgItemText(IDC_EDIT_ALIGN_PATH, strTmpPath); } LOG(Dbg, _T("[PathSetting] Align Path Setting")); } void CPathSettingDlg::OnBnClickedBtnSave() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CString strFilePath; strFilePath.Format("%s\\Config\\%s", GetExePath(), PathSettingFilePath); GetDlgItemText(IDC_EDIT_ALIGN_PATH, m_strAlignPath); INIWriteStr("Path", "Align", m_strAlignPath, strFilePath); GetDlgItemText(IDC_EDIT_BIN_PATH, m_strBinPath); INIWriteStr("Path", "Bin", m_strBinPath, strFilePath); GetDlgItemText(IDC_EDIT_INSPECTOR_PATH, m_strInspectorPath); INIWriteStr("Path", "Inspector", m_strInspectorPath, strFilePath); GetDlgItemText(IDC_EDIT_REVIEW_PATH, m_strReviewPath); INIWriteStr("Path", "Review", m_strReviewPath, strFilePath); /*< LYW 20211018 - #3684 ADD Start >*/ CString strTemp; strTemp.Format(_T("%d"), m_comboDirectionX.GetCurSel()); INIWriteStr("Path", "DirectionX", strTemp, strFilePath); strTemp.Format(_T("%d"), m_comboDirectionY.GetCurSel()); INIWriteStr("Path", "DirectionY", strTemp, strFilePath); /*< LYW 20211018 - #3684 ADD End >*/ AfxMessageBox(_T("저장 되었습니다"), MB_OK | MB_ICONWARNING); LOG(Dbg, _T("[PathSetting] PathSetting Save")); ShowWindow(SW_HIDE); } void CPathSettingDlg::OnBnClickedCancel() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CString strTemp; strTemp.Format(_T("")); if (m_strAlignPath == "") { m_strAlignPath.Format(_T("D:\\ResultData\\Align\\")); } if (m_strBinPath == "") { m_strBinPath.Format(_T("D:\\DIT_ResultData\\RawBin\\")); } if (m_strInspectorPath == "") { m_strInspectorPath.Format(_T("\\\\126.100.100.1\\D\\Image\\Defect\\")); } if (m_strReviewPath == "") { m_strReviewPath.Format(_T("D:\\ResultData\\UploadImage\\")); } SetDlgItemText(IDC_EDIT_ALIGN_PATH, m_strAlignPath); SetDlgItemText(IDC_EDIT_BIN_PATH, m_strBinPath); SetDlgItemText(IDC_EDIT_INSPECTOR_PATH, m_strInspectorPath); SetDlgItemText(IDC_EDIT_REVIEW_PATH, m_strReviewPath); LOG(Dbg, _T("[PathSetting] PathSetting Cancel")); ShowWindow(SW_HIDE); } void CPathSettingDlg::PathSettingLoad() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. CString strFilePath; strFilePath.Format(_T("%s\\Config\\%s"), GetExePath(), PathSettingFilePath); CString strAppName = _T("Path"); m_strAlignPath = INIReadStr(strAppName, _T("Align"), strFilePath); m_strBinPath = INIReadStr(strAppName, _T("Bin"), strFilePath); m_strInspectorPath = INIReadStr(strAppName, _T("Inspector"), strFilePath); m_strReviewPath = INIReadStr(strAppName, _T("Review"), strFilePath); CString strTemp; strTemp = INIReadStr(strAppName, _T("DirectionX"), strFilePath); m_comboDirectionX.SetCurSel(_ttoi(strTemp)); strTemp = INIReadStr(strAppName, _T("DirectionY"), strFilePath); m_comboDirectionY.SetCurSel(_ttoi(strTemp)); if (m_strAlignPath == "") { m_strAlignPath.Format(_T("D:\\ResultData\\Align\\")); } if (m_strBinPath == "") { m_strBinPath.Format(_T("D:\\DIT_ResultData\\RawBin\\")); } if (m_strInspectorPath == "") { m_strInspectorPath.Format(_T("\\\\126.100.100.1\\D\\Image\\Defect\\")); } if (m_strReviewPath == "") { m_strReviewPath.Format(_T("D:\\ResultData\\UploadImage\\")); } SetDlgItemText(IDC_EDIT_ALIGN_PATH, m_strAlignPath); SetDlgItemText(IDC_EDIT_BIN_PATH, m_strBinPath); SetDlgItemText(IDC_EDIT_INSPECTOR_PATH, m_strInspectorPath); SetDlgItemText(IDC_EDIT_REVIEW_PATH, m_strReviewPath); LOG(Dbg, _T("[PathSetting] Start Review Path Setting Load")); } /*< LYW 20211018 - #3684 ADD Start >*/ BOOL CPathSettingDlg::OnInitDialog() { __super::OnInitDialog(); // TODO: 여기에 추가 초기화 작업을 추가합니다. m_comboDirectionX.AddString(_T("Nomal")); m_comboDirectionX.AddString(_T("Reverse")); m_comboDirectionY.AddString(_T("Nomal")); m_comboDirectionY.AddString(_T("Reverse")); m_comboDirectionX.SetCurSel(0); m_comboDirectionY.SetCurSel(0); return TRUE; // return TRUE unless you set the focus to a control // 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다. } /*< LYW 20211018 - #3684 ADD End >*/