삽이 부서질 때까지 삽질

[MFC] 파일 저장 및 읽기(직렬화) 본문

MFC

[MFC] 파일 저장 및 읽기(직렬화)

xinfo 2016. 12. 6. 10:56

간단하게 입력한 글자와 스타일 저장하는 예제를 만들볼게요.


뷰에서 도큐먼트 객체과 관리하기 때문에 [이름]DOC.h 에서 관리를 합니다.

저는 FileIOTest로 지어서 FileIOTest.Doc.h 입니다.


OnNewDocument 에서 변수를 초기화 하자

[OnNewDocument 는 파일을 새로만들기 했을 경우 자동으로 호출하는 함수이다.]


클래스 뷰에서 CFileIOTestView 에 WM_CHAR 메세지를 추가한다.


입력한 글자를 도큐먼트 객체에 저장하기 위해서  GetDocument 함수를 이용해 도큐먼트 객체의 주소를 가져오고, SetModifiedFlag 함수로 데이터가 수정된걸 도큐먼트 객체에 알린다. 마지막에는 Invalidate 함수를 사용해 WM_PAINT 메세지를 발생시킨다.



준비가 되었으니 이제 OnDraw 에 글을 출력하는 코드를 작성해보자.


여기까지만 해도 글자가 써집니다.

하지만 스타일까지 저장하기 위해서 전에 글을 쓴 메뉴를 추가하겠습니다.

기존 메뉴에 추가하기 위해 .rc 파일을 열어 추가했습니다.



이텔릭 ID는 ID_STYLE_ITALIC

밑줄 ID는 ID_STYLE_UNDERLINE

이렇게 주었습니다.


클래스 뷰로 돌아와 CFileIOTestDoc의 이벤트를 보면 메뉴에서 설정한 아이디가 나오고 커멘더를 추가합니다.


그리고 이벤트에 해당하는 코드를삽입하면 끝


이면 좋겠지만, 파일 저장 읽기를 하기 위한 코드 작성을 하자.

CObject::Serialize 에 직렬화 기능과 관련 있다. 데이터를 저장하거나 읽어오는 코드를 여기에 추가하면 된다.


'MFC' 카테고리의 다른 글

[MFC] SDI 간단 분석  (0) 2016.12.06
[MFC] 텍스트 파일이 아닌 확장 메타파일 형식으로 저장  (0) 2016.12.06
[MFC] 메뉴 명령 처리  (0) 2016.12.02
[MFC] 메뉴 생성하기  (0) 2016.12.01
[MFC] 구조 및 기본 클래스  (0) 2016.12.01
Comments