Lab 1 Guide: 교재 2장 DrawX ( 쪽)

Slides:



Advertisements
Similar presentations
Hallym Univ MFC 개요 및 사용법 발표자 : 최 원 민 1 목 차목 차  MFC 의 개요  MFC 프로그램의 구조  SDI(Single Document Interface) 애플리케이션 구조  MDI(Multiple Document Interface)
Advertisements

1 컴퓨터정보과 MFC 의 개요 MFC 윈도우 애플리케이션을 생성하기 위해 만들어진 C++ 클래스 라이브러리 애플리케이션 프레임워크를 제공 MFC 의 이점 윈도우 프로그램 전문가로 만들어 준다. 개발시간을 단축시키고, 이식성이 강한 코드를 작성 ActiveX, OLE,
MFC의 개요 MFC MFC의 이점 윈도우 애플리케이션을 생성하기 위해 만들어진 C++ 클래스 라이브러리
Visual C++ Programming Document/View Architecture Department of Digital Contents Sang Il Park.
프로젝트 보고서 학과 : 임학과 학번 : 성명 : 조성환 Windows 프로그래밍.
컴퓨터 공학 설계 및 실험 I MFC programming
컴퓨터와 인터넷.
윈도우 프로그래밍 실습 김 창 헌.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
03장 영상처리를 위한 Visual C++ 디지털 영상 파일 포맷 MFC 응용 프로그램 마법사를 이용한 MFC 프로젝트 작성
03장 영상처리를 위한 Visual C++ 디지털 영상 파일 포맷
Lab 6 Guide: 교재 14장 DLL 예제. Regular DLL 만들기 - 암시적 연결 ( 쪽) 명시적 연결 ( 쪽)
MFC Application Frameworks (AFX)
CHAP 19. 구글맵.
Lab 10 Guide: 프린터 출력 예제. 한 페이지의 그림 인쇄 (교재 24장, 쪽)
Chapter 1 윈도우 프로그래밍 들어가기 윈도우 응용 프로그램을 작성하기 위해 필요한 기본 개념을 정립하고 Visual Studio를 설치한 후 MFC 응용 프로그램 마법사를 사용하여 MFC 프로그램을 작성하는 방법을 학습한다.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Dongseo univ. Computer engineering
Network Socket Programming
Image & Video processing
제 1 장 영상처리 기초.
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
Network Lab. Young-Chul Hwang
Lab 3 Guide: 교재 4장 대화상자 예제. - 프로파일 입력 ( 쪽)
윤 홍 란 다이알로그(대화상자) 윤 홍 란
윤 홍 란 MFC 기초 윤 홍 란
Lab 2 Guide: 교재 3장 그래픽 예제 ( 쪽) - 펜과 브러시로 그리기 - 튀는 공
공통 컨트롤의 종류와 특징을 개관한다. 각종 공통 컨트롤의 사용 방법을 익힌다..
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
CH 1. MFC 전체보기 정보통신공학과 안 재 형.
MFC Application Frameworks (AFX)
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Visual C++ Programming Output and File
Visual Basic .NET 처음 사용하기.
제 2 장 WML 시뮬레이터 및 무선인터넷 서버 설치
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
03장 영상처리를 위한 Visual C++ 디지털 영상 파일 포맷
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
분할 윈도, 다중 뷰… 영상 통신 연구실 권 동 진 발표 일 : 04월 27일.
Visual C++ Programming
10장 컴퓨터 기반 데이터 획득 응용 프로그램 LabVIEW 사용법
자바응용.
SAS Statistical Analysis System 통계패키지 실습 (2011년 1학기)
영상처리 실습 인공지능연구실.
GUI 소켓 애플리케이션 Chapter 08. * 학습목표 윈도우 GUI 애플리케이션의 구조와 동작 원리를 이해
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
Lesson 2. 기본 데이터형.
Lab 9 Guide: 인터넷 프로그래밍 예제 * 일대일 채팅 프로그램 (교재 27장, 쪽)
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
Chapter7. 도큐먼트와 파일 입출력 이 학 주.
자료관리 : 현 화면에서 인쇄할 자료를 입력하여 발행하는 화면 입니다.
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
9 브라우저 객체 모델.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
CHAP 15. 데이터 스토리지.
유승석 FILE I/O File Input/Output 유승석 SD50 – C# & .NET Platform.
MFC 기초 윈도우 응용프로그램 개발 간략한 역사 Microsoft Foundation Classes
Presentation transcript:

Lab 1 Guide: 교재 2장 DrawX (130-158쪽)

실습 목적 및 장비 실습 목적 장비: PC, 윈도우 운영체제, Visual Studio (VC++ 6.0) AppWizard 사용 방법 및 기능 이해 단일 문서 애플리케이션 구조 문서/뷰 구조의 이해와 응용 직렬화의 이해: 문서의 저장 및 불러 오기 윈도우 프로그래밍 기초 이벤트 처리 메뉴 사용 방법 기초 간단한 이벤트 처리 간단한 그래픽 기능 장비: PC, 윈도우 운영체제, Visual Studio (VC++ 6.0)

단계 1: 기본 프로그램 기본 프로그램 개요 Single Document 애플리케이션 마우스 클릭 위치에 X 표시를 그림 실행 파일(http://cs.sookmyung.ac.kr/class/06395/Lab/DrawX1.exe)

단계 1: 기본 프로그램 X 표시 View 클래스에서 WM_LBUTTONDOWN 메시지 처리 함수인 OnLButtonDown(UINT nFlags, CPoint point)를 추가하고 정의 코드 #define SIZE 10 void CDrawXView::OnLButtonDown(UINT nFlags, CPoint point) { CClientDC dc(this); dc.MoveTo(point.x-SIZE, point.y-SIZE); dc.LineTo(point.x+SIZE, point.y+SIZE); dc.MoveTo(point.x-SIZE, point.y+SIZE); dc.LineTo(point.x+SIZE, point.y-SIZE); CView::OnLButtonDown(nFlags, point); } #define SIZE 10 void CDrawXView::DrawX(CPoint point) { CClientDC dc(this); dc.MoveTo(point.x-SIZE, point.y-SIZE); dc.LineTo(point.x+SIZE, point.y+SIZE); dc.MoveTo(point.x-SIZE, point.y+SIZE); dc.LineTo(point.x+SIZE, point.y-SIZE); } void CDrawXView::OnLButtonDown(UINT nFlags, CPoint point) DrawX(point); CView::OnLButtonDown(nFlags, point); 또는

단계 2: 기능 확장 프로그램 실행 파일(http://cs.sookmyung.ac.kr/class/06395/Lab/DrawX2.exe) 기본 프로그램의 경우 화면의 자동 복원 기능 없음 Document/View 구조의 사용 View 클래스의 가상 함수 OnDraw(CDC *pDC)에 화면 복원 기능을 정의 메뉴 추가 2배 확대해서 보기/원래 크기로 보기 각 메뉴 항목에 대해 COMMAND 처리 함수 추가 Invalidate(): OnDraw()를 호출하여 화면을 새로 그리게 함 UpdateAllViews(NULL): 현재의 문서에 연계된 모든 View를 새로 그리게 함

단계 2: 기능 확장 프로그램 데이터 저장 및 읽어 오기 Document 클래스의 가상 함수 Serialize(CArchive &ar)를 재정의 void CDrawXDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) // add storing code here ar<<m_nCount; for(int i = 0; i <= m_nCount; i++) ar<<m_ptData[i]; } else // add loading code here ar>>m_nCount; ar>>m_ptData[i];

데이터 저장 및 읽어 오기 Application framework 파일 메뉴 처리 ID_FILE_NEW ID_FILE_OPEN ID_FILE_SAVE ID_FILE_SAVE_AS ID_FILE_NEW CWinApp class OnFileNew() 커맨드 핸들러 함수 새로운 Document 생성 CDocument의 맴버 함수 OnNewDocument() 호출 CDocument class - 새로운 instance 생성 OnNewDocument() 호출됨

데이터 저장 및 읽어 오기 ID_FILE_OPEN CWinApp class CDocument class ID_FILE_SAVE OnFileOpen() 커맨드 핸들러 함수 - 파일명 입력 받음 새로운 Document 생성 CDocument의 맴버 함수 OnOpenDocument() 호출 (파일명을 인자로 넘겨줌) CDocument class - 새로운 instance 생성 OnOpenDocument() 호출됨 Serialize() 함수 호출 ID_FILE_SAVE OnFileSave() 커맨드 처음 저장하는 경우 파일명 입력 받음 OnSaveDocument() 호출 - OnSaveDocument() 호출됨

데이터 저장 및 읽어 오기 CObject 클래스에는 데이터의 저장 및 읽기를 위한 Serialize 함수가 구현되어 있음 대부분의 MFC class는 CObject에서 파생, 따라서 Serialize 함수 사용가능 그러나, 저장 및 읽는 방식이 다르기 때문에 실제로는, 사용자가 overriding 한다. CDocument 파생 클래스: Serialize 함수가 overriding 되어 있음 void CdrawXDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) } else

데이터 저장 및 읽어 오기 CDocument CArchive CMemFile CFile CSocketFile Memory Serialize CDocument CArchive CMemFile CFile CSocketFile Serialize Memory Disk Network CAarchive 클래스 instance를 하나 만들어 Serialize 함수에 넘겨줌 (Instance는 입출력 파일이름 save인가, open인가 여부 등의 정보를 갖고 있음) CDocument 클래스와 다른 입출력 클래스 (Cfile)를 연결시켜주는 클래스