SDI나 MDI 구조의 경우 문서 열기를 재정의 해서 사용해야 할 때가 있다.
이럴때는...
1. XXXXAPP.cpp 파일을 열어서
코드의 가장 위에 있는 메시지를 아래와 같이 다시 정의한다.
- BEGIN_MESSAGE_MAP(CCudaTestApp, CWinAppEx)
- ON_COMMAND(ID_APP_ABOUT, &CCudaTestApp::OnAppAbout)
- // 표준 파일을 기초로 하는 문서 명령입니다.
- ON_COMMAND(ID_FILE_NEW, &CWinAppEx::OnFileNew)
- //기존의 OnFileOpen 임.
- //ON_COMMAND(ID_FILE_OPEN, &CWinAppEx::OnFileOpen)
- //OnOpenDocument 함수를 호출할 때, 자신이 만든 함수를 호출하도록
- //ID_FILE_OPEN를 사용자 임의로 재정의 한다.
- ON_COMMAND(ID_FILE_OPEN, &CCudaTestApp::OnFileOpen)
- // 표준 인쇄 설정 명령입니다.
- ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinAppEx::OnFilePrintSetup)
- ON_COMMAND(ID_FILE_OPEN, &CCudaTestApp::OnFileOpen)
- END_MESSAGE_MAP()
2. 클래스 위자드나 이벤트 재정의에서 다음과 같이 OnFileOpen 함수를 추가해 준다.
3. OnFileOpen함수 내부를 아래와 같이 작성. (원하는 파일 다이얼로그를 만들기 위한 코드를 여기에 작성한다)
- void CCudaTestApp::OnFileOpen(){
- // TODO: 여기에 명령 처리기 코드를 추가합니다.
- char filter[] = "Raw files (*.raw)|*.raw||";
- CFileDialog dlg(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT, filter);
- if(dlg.DoModal() == IDOK){
- for(POSITION pos = dlg.GetStartPosition(); pos !=NULL;)
- OpenDocumentFile(dlg.GetNextPathName(pos));
- }
- }
현재 코드는 여러 파일을 동시에 읽어들일 수 있도록 해놓은 상태이다.
4. 컴파일 후 실행하면 원하는 파일 다이얼로그를 볼 수 있다.
'Software > Programming' 카테고리의 다른 글
MFC의 흐름 (0) | 2012.08.10 |
---|---|
도큐먼트 뷰 객체 설명 (0) | 2012.08.10 |
CFileDialog (0) | 2012.08.10 |
MFC에서 유니코드 관련해서 문제가 생겼다. (1) | 2012.08.09 |
게시판 프로그램 (0) | 2011.10.11 |