=================================
=================================
=================================
출처: http://wyseburn.tistory.com/entry/CFileDialog-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%9D%BD%EA%B1%B0%EB%82%98-%EC%A0%80%EC%9E%A5%ED%95%A0%EB%95%8C-%ED%8C%8C%EC%9D%BC%EC%B0%BD-%EB%9D%84%EC%9A%B0%EA%B8%B0
파일에 변수의 내용을 직렬화 해서 저장,읽어들이는 예제
CFileDialog dlg(
TRUE(읽기)/FALSE(저장),
기본확장자,
기본파일명,
열기모드->MSDN 참고,
파일창 아래쪽에 나오는 필터링
)
파일을 열어 변수에 읽어들일때
char szFilter[] = "PCMON (*.CFG) | All Files(*.*)|*.*||";
CFileDialog dlg(TRUE, "cfg", "pcmon", OFN_HIDEREADONLY, szFilter);
if(IDOK == dlg.DoModal())
{
CString strPathName = dlg.GetPathName();
CFile fp;
CFileException e;
if(!fp.Open(strPathName, CFile::modeRead, &e)) {
e.ReportError();
return;
}
CString str;
CArchive ar(&fp, CArchive::load);
ar >> str;
}
파일을 선택해서 저장할때
char szFilter[] = "PCMON (*.CFG) | All Files(*.*)|*.*||";
CFileDialog dlg(FALSE, "cfg", "pcmon", OFN_HIDEREADONLY, szFilter);
if(IDOK == dlg.DoModal())
{
CString strPathName = dlg.GetPathName();
CFile fp;
CFileException e;
if(!fp.Open(strPathName,CFile::modeWrite|CFile::modeCreate, &e)) {
e.ReportError();
return;
}
CString str = _T("문자열");
CArchive ar(&fp, CArchive::store);
ar << str;
}
출처: http://wyseburn.tistory.com/entry/CFileDialog-파일을-읽거나-저장할때-파일창-띄우기 [메모장입니다.]
=================================
=================================
=================================
출처: http://itbrain.tistory.com/entry/CFileDialog-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%9D%BD%EA%B1%B0%EB%82%98-%EC%A0%80%EC%9E%A5%ED%95%A0%EB%95%8C-%EC%B0%BD%EB%9D%84%EC%9A%B0%EA%B8%B0
파일에 변수의 내용을 직렬화 해서 저장,읽어들이는 예제
CFileDialog dlg(
TRUE(읽기)/FALSE(저장),
기본확장자,
기본파일명,
열기모드->MSDN 참고,
파일창 아래쪽에 나오는 필터링
)
파일을 열어 변수에 읽어들일때
char szFilter[] = "PCMON (*.CFG) | All Files(*.*)|*.*||";
CFileDialog dlg(TRUE, "cfg", "pcmon", OFN_HIDEREADONLY, szFilter);
if(IDOK == dlg.DoModal())
{
CString strPathName = dlg.GetPathName();
CFile fp;
CFileException e;
if(!fp.Open(strPathName, CFile::modeRead, &e)) {
e.ReportError();
return;
}
CString str;
CArchive ar(&fp, CArchive::load);
ar >> str;
}
파일을 선택해서 저장할때
char szFilter[] = "PCMON (*.CFG) | All Files(*.*)|*.*||";
CFileDialog dlg(FALSE, "cfg", "pcmon", OFN_HIDEREADONLY, szFilter);
if(IDOK == dlg.DoModal())
{
CString strPathName = dlg.GetPathName();
CFile fp;
CFileException e;
if(!fp.Open(strPathName,CFile::modeWrite|CFile::modeCreate, &e)) {
e.ReportError();
return;
}
CString str = _T("문자열");
CArchive ar(&fp, CArchive::store);
ar << str;
}
레퍼런스 : http://six605.tistory.com/187
■ CFileDialog 파일 열기/저장 대화상자
※ 공통 대화상자 클래스 존재의 이유
- 자주 사용되는 대화상자 UI를 MFC 에서 제공
※ 공통 대화상자의 종류
- CFileDialog
- CFontDialog
- CColorDialog
- CPageSeupDialog
- CPrintDialog
- CFineReplaceDialog
- COleDialog
1. CFileDialog
- 파일 열기/저장 대화상자
2. 생성자 함수 원형
CFileDialog(BOOL bOpenFileDialog,
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL );
bOpenFileDialog | TRUE:열기, FALSE: 다른 이름으로저장 | |
lpszDefExt | 기본 확장자. | |
lpszFileName | 대화상자가 처음 출력되었을 때 "파일 이름" Edit 컨트롤에 출력될 파일명 지정 | |
dwFlags | OFN_EXPLOPER | 윈도우 탐색기 스타일로 출력 |
OFN_ARROWMULTISELECT | 파일을 한번에 여러개 선택 가능 | |
OFN_CREATEPROMPT | 존재하지 않는 파일명을 입력했을 경우 새로 생성하겠냐는 메시지 박스 출력 | |
OFN_FILEMUSTEXIST | 존재하지 않는 파일명을 입력할 수 없도록 함 | |
OFN_HIDEREADONLY | 읽기전용 파일은 출력하지 않음 | |
OFN_LONGNAMES | 긴 파일 이름 포맷 지원 | |
OFN_OVERWRITEPROMPT | 존재하는 파일명을 입력했을 경우 덮어쓰겠냐는 메시지 박스 출력 | |
OFN_PATHMUSTEXIST | 이미 존재하는 디렉터리명만을 입력 | |
lpszFilter | 대화상자에 출력될 파일들을 확장자에 의해서 걸러지도록 하기 위한 필터 지정 | |
pParentWnd | 대화상자의 부모 윈도우 지정 |
※ lpszFilter 예) "EXE Files(*.exe)|*.exe|ALL FIles(*.*)|*.*||"
3. 멤버 함수
- CString GetPathName() 선택된 파일의 절대 경로
- CString GetFileName() 선택된 파일의 이름과 확장자
- CString GetFileExt() 선택된 파일의 확장자
- CString GetFileTitle() 선택된 파일의 파일명
- BOOL GetReadOnlyPref() 읽기 전용 여부
- POSITION GetStartPosition() 다중 선택에서 사용
- CString GetNextPathName() 다중 선택에서 사용
4. 사용 예
- 한개의 파일 선택
"Image (*.BMP, *.GIF, *.JPG) | *.BMP;*.GIF;*.JPG | All Files(*.*)|*.*||";
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);
if(IDOK == dlg.DoModal())
{
CString strPathName = dlg.GetPathName();
}
출처: http://itbrain.tistory.com/entry/CFileDialog-파일을-읽거나-저장할때-창띄우기 [itbrain]
=================================
=================================
=================================
'프로그래밍 관련 > MFC' 카테고리의 다른 글
C++: WIN API, MFC - INI(확장자.ini) 파일 일고, 쓰기 (0) | 2020.09.10 |
---|---|
C/C++ MFC WIN32 자신의 위치를 얻어오는 GetCurrentDirectory, GetModuleFileName (0) | 2017.10.26 |
MFC - CFileDialog 주의사항. 프로그램의 자신경로 설정변경으로 인한 오류참고 (참고 키워드 MFC, LoadImage, 리턴, 리턴값, 0x00000000, NULL, CFileDialog) (0) | 2017.10.12 |
MFC C++ 객체 색상 OnCtlColor를 이용한 변경 (1) | 2017.09.06 |
[MFC] OnSize 이벤트 발생 시키기 (0) | 2017.08.01 |