프로그램 내에서 사용되는 코드들을 적어두는 포스팅.
일단은 외형을 짜는 방법부터 시작하였다.
대화상자[ 다이얼로그 ] 를 활용한 경로 알아내기 와 얻은 경로를
에디트 컨트롤 에 집어넣는 법.
도구상자들을 통하여 위와 같이 만들고
우측 파일 찾기 를 더블클릭하거나 이벤트 처리기 추가 를 통해 클릭 관련 처리를 만들어준다.
여기서 쓰인 중요 코드는
파일 경로 를 알아내는 파일 대화 상자 코드이다.
원형은 다음과 같다
책에서는 CWnd 이후는 안적혀있다.
차례대로 열기 인지 저장 인지 명시하는 플래그 bOpenFileDialog
저장 모드일 시 입력받은 파일명에 덧붙일 확장명을 적어주는 lpszDefExt [열기 이므로 본 코드에선 NULL이다.]
경로 입력 필드에 출력할 기본 값 lpszFileName
그리고 dwFlags 에는 속성이 들어가며 (OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST) 이 두 속성을 정하면
열려는 파일과 경로가 분명하게 있음을 의미함. 여기에 OFN_ALLOWMULTISELECT를 입력하여 추가하면 여러 파일을 선택할 수 있다.
원형에 쓰인 OFN_HIDEREADONLY 은 숨긴 파일은 보이지 말라는 속성이고 OFN_OVERWRITEPROMPT 은 저장모드에서 이미 같은 이름의 파일이 있을 때 경고창을 띄우라는 속성이다.
그 다음으로 중요한 속성은 lpszFilter 가 있다.
이는 흔히 가장 첫번째로 해당 프로그램에서 사용할 파일들의 확장자를 정하여 그것들만 보이게 필터링 할 때 사용된다.
본문에 쓰인 것 처럼 띄어쓰기를 하지 않아야 잘 작동하므로 보기 편하라고 띄어쓰기를 하면 작동이 되지 않으니 주의해야한다.
속성의 마지막에는 ||를 붙여서 끝을 표시해야 한다.
pParentWnd 는 새로 만들 파일 대화 상자의 부모 윈도우의 주소이다.
조건문인 if(Dlg.DoModal() == IDOK)
를 통하여 정상적으로 파일을 입력시킨 경우에 해당 코드를 실행하게 한다.
GetPathName 을 통하여 대화상자에서 얻은 파일의 경로명을 스트링 변수에 집어넣고
그 값을 왼측의 에디트 컨트롤 에 집어넣는다.
코드 파일 업로드.
ps. 주석처리 된 부분은 책에 있는 내용으로 주석을 해제하면 대화 상자에서 입력을 마치는 즉시 파일명 경로명 파일의 확장자 가 메시지로 출력된다.
일단은 외형을 짜는 방법부터 시작하였다.
대화상자[ 다이얼로그 ] 를 활용한 경로 알아내기 와 얻은 경로를
에디트 컨트롤 에 집어넣는 법.
도구상자들을 통하여 위와 같이 만들고
우측 파일 찾기 를 더블클릭하거나 이벤트 처리기 추가 를 통해 클릭 관련 처리를 만들어준다.
여기서 쓰인 중요 코드는
CFileDialog Dlg(TRUE, _T("DAT"), NULL,
OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST,
_T("DAT Files(*.dat)|*.dat|All Files(*.*)|*.*||"),this);파일 경로 를 알아내는 파일 대화 상자 코드이다.
원형은 다음과 같다
CFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL,
DWORD dwSize = 0,
BOOL bVistaStyle = TRUE); |
책에서는 CWnd 이후는 안적혀있다.
차례대로 열기 인지 저장 인지 명시하는 플래그 bOpenFileDialog
저장 모드일 시 입력받은 파일명에 덧붙일 확장명을 적어주는 lpszDefExt [열기 이므로 본 코드에선 NULL이다.]
경로 입력 필드에 출력할 기본 값 lpszFileName
그리고 dwFlags 에는 속성이 들어가며 (OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST) 이 두 속성을 정하면
열려는 파일과 경로가 분명하게 있음을 의미함. 여기에 OFN_ALLOWMULTISELECT를 입력하여 추가하면 여러 파일을 선택할 수 있다.
원형에 쓰인 OFN_HIDEREADONLY 은 숨긴 파일은 보이지 말라는 속성이고 OFN_OVERWRITEPROMPT 은 저장모드에서 이미 같은 이름의 파일이 있을 때 경고창을 띄우라는 속성이다.
그 다음으로 중요한 속성은 lpszFilter 가 있다.
이는 흔히 가장 첫번째로 해당 프로그램에서 사용할 파일들의 확장자를 정하여 그것들만 보이게 필터링 할 때 사용된다.
본문에 쓰인 것 처럼 띄어쓰기를 하지 않아야 잘 작동하므로 보기 편하라고 띄어쓰기를 하면 작동이 되지 않으니 주의해야한다.
속성의 마지막에는 ||를 붙여서 끝을 표시해야 한다.
pParentWnd 는 새로 만들 파일 대화 상자의 부모 윈도우의 주소이다.
조건문인 if(Dlg.DoModal() == IDOK)
를 통하여 정상적으로 파일을 입력시킨 경우에 해당 코드를 실행하게 한다.
CString strValue; // 입력할 변수선언
strValue = Dlg.GetPathName(); // 입력할 내용
SetDlgItemText(IDC_LOG,strValue); //저장.
GetPathName 을 통하여 대화상자에서 얻은 파일의 경로명을 스트링 변수에 집어넣고
그 값을 왼측의 에디트 컨트롤 에 집어넣는다.
코드 파일 업로드.
ps. 주석처리 된 부분은 책에 있는 내용으로 주석을 해제하면 대화 상자에서 입력을 마치는 즉시 파일명 경로명 파일의 확장자 가 메시지로 출력된다.
**공부에 도움이 되었다면 손가락 버튼을 클릭해주심 좋겠습니다.**
'공부 > MFC' 카테고리의 다른 글
MFC 프로그래밍에서 printf 함수를 출력하는 방법 (2) | 2012.01.05 |
---|---|
error C2440: '=' : 'const char [23]'에서 'LPCWSTR'(으)로 변환할 수 없습니다. (0) | 2011.12.22 |
MFC 더블 버퍼링 [ Double Buffering ] (6) | 2011.12.14 |
Visual C++ 2008 MFC Chapter 18 깜박임 방지 (0) | 2011.12.14 |
그림판 만들기 주석첨부 따라하기 클리어 (0) | 2011.12.12 |