화일 불러오기나 저장하기 기능들을 작성하려다 보면 화일을 선택해야 할 경우가 생긴다. 그때 공통 다이얼로그를 이용하게 되는데 MFC에서는 다음과 같은 클래스를 이용해서 쉽게 해결 할 수 있다. CFileDialog ofn(TRUE); // FALSE일 경우 저장, TRUE일 경우는 불러오기 CString selectedFilePath; char szFilter[] = "All Files (*.*)\0*.*\0\0"; ofn.m_ofn.lpstrFilter = szFilter; // 필터를 설정한다. // 아래 플러그는 매우 중요하다. 화일을 열고나면 AppDirectory가 변경된다. // 이것을 막아 주기 위한 플래그 이다. ofn.m_ofn.Flags |= OFN_NOCHANGEDIR; if (ofn.DoModal() == IDOK) { selectedFilePath = ofn.GetPathName(); // 작업 } 그리고 아래는 다중 화일을 선택하기 위한 코드이다. CFileDialog ofn(TRUE); POSITION StartPosition; CString selectedFilePath; char szFilter[] = "All Files (*.*)\0*.*\0\0"; ofn.m_ofn.lpstrFilter = szFilter; ofn.m_ofn.Flags |= OFN_NOCHANGEDIR; //다중 선택을 위한 플래그이다. ofn.m_ofn.Flags |= OFN_ALLOWMULTISELECT; StartPosition = ofn.GetStartPosition(); if (ofn.DoModal() == IDOK) { while(StartPosition) { selectedFilePath = ofn.GetNextPathName(StartPosition); // 작업 } } 'IT > C/C++' 카테고리의 다른 글
|