목록2016/12 (15)
삽이 부서질 때까지 삽질
뭐... 이건 귀찮으니 전에 했던 예제로 바꿔보죠. [[MFC] 파일 저장 및 읽기(직렬화)] 기본 저장 방식은 파일인데 이걸 확장 메타파일 형식으로 바꾸려면 프로젝트 생성때 템플릿 속성에서 파일 형식에 emf로 주면 됩니다. 템플릿을 저장할 때 파일 형식을 emf 로 저장만 하면 끝난다.
간단하게 입력한 글자와 스타일 저장하는 예제를 만들볼게요. 뷰에서 도큐먼트 객체과 관리하기 때문에 [이름]DOC.h 에서 관리를 합니다.저는 FileIOTest로 지어서 FileIOTest.Doc.h 입니다. OnNewDocument 에서 변수를 초기화 하자[OnNewDocument 는 파일을 새로만들기 했을 경우 자동으로 호출하는 함수이다.] 클래스 뷰에서 CFileIOTestView 에 WM_CHAR 메세지를 추가한다. 입력한 글자를 도큐먼트 객체에 저장하기 위해서 GetDocument 함수를 이용해 도큐먼트 객체의 주소를 가져오고, SetModifiedFlag 함수로 데이터가 수정된걸 도큐먼트 객체에 알린다. 마지막에는 Invalidate 함수를 사용해 WM_PAINT 메세지를 발생시킨다. 준비가 ..
메뉴를 생성을 알아봤으니 이제 해당 명령어를 처리하는 것에 대해서 공부해볼게요. 기존 메뉴에 list 라는 최상위 메뉴를 추가한 뒤 아래는 폰트 1, 2, 3 을 추가하고 ID는 ID_LIST1 ,2, 3 을 할당했어요. 그리고 폰트에 색을 주는 간단한걸 구현할거라 CChildView.h 에 COLOREF 변수를 추가할게요. 그리고 생성자에서는 색을 초기화 합니다. 메뉴에 이벤트를 할당할건데 이건 클래스 뷰에서 CChildView 에 오른쪽 클릭을 한 뒤 속성을 들어갑니다.그리고 이벤트 창(번개모양)을 클릭하시면 추가된 ID를 볼 수 있습니다. 여기서 우리가 추가한 ID_LIST 1 ~ 3 을 +를 눌러 확장하시고 커멘드를 눌러 추가하기를 누르시면 자동으로 ChildView.cpp 에 명령 핸들러가 추가..
먼저 MFC 응용프로그램 프로젝트를 생성하고 설정 옵션은 아래와 같습니다. 단계 변경 사항 응용 프로그램 종류 '단일 문서' 선택'문서/뷰 아키텍처 지원' 해제'비주얼 스타일 전환 사용' 해제 데이터베이스 지원 변경 사항 없음 사용자 인터페이스 기능 '클레식 메뉴 사용' 선택 고급 기능 모든 옵션 해제 메뉴 생성하는 방법은 두가지가 있어요. 1. 리소스를 이용한 메뉴 생성2. 코드를 이용한 메뉴 생성 먼저 리소스 를 이용한 메뉴 생성법에 대해서 알아 볼게요. 1. 클래스 뷰에서 오른쪽 클릭한 뒤 추가에 리소스를 누르고2. 메뉴를 추가 하면 됩니다. 그러면 아래 그림과같이 자동으로 메뉴에 ID가 추가가되고 IntiInstance 함수에는 IDR_MAINFRAME 이 추가가 되어있습니다. 여기서 보이는 Lo..
MFC 구조는 검정 화살표MFC 기본 클래스는 주황 화살표 구조는 가장 밖에 있는게 프레임 윈도우 또는 메인 윈도우라고 부르며, 클라이언트 부분은 툴바, 뷰, 상태바가 존재한다.프레임 윈도우와 뷰는 부모 - 자식 관계으로 이루어져 있다. 기본 클래스는 3가지로 이루어져있는데 각각 응용 프로그램 클래스, 프레임 윈도우클래스, 뷰 클래스 이다.응용 프로그램 클래스 프레임 윈도우 생성, 메세지 루프 제공 프레임 윈도우 클래스 프레임 윈도우 기능 제공, 뷰 생성 뷰 클래스 뷰 기능 제공 첫 사진에 나온 실행 파일의 소스들이다. SimpleToolbar.CPP 에는 BEGIN_MESSAGE_MAP(클래스 이름, 베이스 클래스 이름) 매크로와 END_MESSAGE_MAP() 매크로 사이에 윈도우 메세지와 메세지 지..