MFC Application Frameworks (AFX)

Slides:



Advertisements
Similar presentations
메시지 처리의 기본 개념 메시지 발생된 이벤트의 종류와 정보를 전달하는 일종의 상수 값 윈도우 프로그래밍 가장 중요한 것은 메시지를 처리하는 것 윈도우 시스템 Application 이벤트 발생 메시지 전송 메시지 처리 화면에 출력.
Advertisements

Visual C++ 구성. DevStudio –Visual C++ 를 실행시키면 전면에 뜨는 프로그램. – 텍스트에디터, 리소스에디터, 디버거 등 모든 기능 총괄 MFC(Microsoft Foundation Class) – 윈도우 프로그램을 만드는데 필요한 거의 모든.
Hallym Univ MFC 개요 및 사용법 발표자 : 최 원 민 1 목 차목 차  MFC 의 개요  MFC 프로그램의 구조  SDI(Single Document Interface) 애플리케이션 구조  MDI(Multiple Document Interface)
1 컴퓨터정보과 MFC 의 개요 MFC 윈도우 애플리케이션을 생성하기 위해 만들어진 C++ 클래스 라이브러리 애플리케이션 프레임워크를 제공 MFC 의 이점 윈도우 프로그램 전문가로 만들어 준다. 개발시간을 단축시키고, 이식성이 강한 코드를 작성 ActiveX, OLE,
MFC의 개요 MFC MFC의 이점 윈도우 애플리케이션을 생성하기 위해 만들어진 C++ 클래스 라이브러리
Visual C++ Programming Document/View Architecture Department of Digital Contents Sang Il Park.
Visual C++ Programming Document/View Architecture
컴퓨터 공학 설계 및 실험 I MFC programming
컴퓨터와 인터넷.
윈도우 프로그래밍 실습 김 창 헌.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다.
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Lecture 2 MFC and Application Frameworks
Lab 10 Guide: 프린터 출력 예제. 한 페이지의 그림 인쇄 (교재 24장, 쪽)
Chapter 1 윈도우 프로그래밍 들어가기 윈도우 응용 프로그램을 작성하기 위해 필요한 기본 개념을 정립하고 Visual Studio를 설치한 후 MFC 응용 프로그램 마법사를 사용하여 MFC 프로그램을 작성하는 방법을 학습한다.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Chapter 10. AWT 이벤트.
Index SendMemo 기능 Q & A 팀 소개 배경 및 목적 구현
Image & Video processing
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
윤 홍 란 다이알로그(대화상자) 윤 홍 란
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
MFC를 이용한 네트워크게임 졸업 프로젝트 담당 교수 : 김재형 교수님 김 성준 김 민기.
윤 홍 란 MFC 기초 윤 홍 란
Lab 2 Guide: 교재 3장 그래픽 예제 ( 쪽) - 펜과 브러시로 그리기 - 튀는 공
졸업작품발표 타자 연습 프로그램 By.. Eunju 담당 교수 : 이형원 교수님 학번 : 이름 : 김은주.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
CH 1. MFC 전체보기 정보통신공학과 안 재 형.
MFC Application Frameworks (AFX)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
1. C++ 시작하기.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
분할 윈도, 다중 뷰… 영상 통신 연구실 권 동 진 발표 일 : 04월 27일.
Visual C++ Programming
자바 5.0 프로그래밍.
Java 2장. 자바의 환경 public class SumTest {
인터넷 따라 하기 ◆ 인터넷 시작 하기 ◆ 인터넷 끝내기 ◆ 홈페이지 방문 및 정보검색 ◆ 전자우편( ) 가입
SAS Statistical Analysis System 통계패키지 실습 (2011년 1학기)
홀인원2.0 설치 메뉴얼.
영상처리 실습 인공지능연구실.
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
법령안편집기 연결버튼 표시가 안 될 경우 정부입법지원센터( 입안 및 심사안을 진행시
2D 게임프로그래밍 프로젝트 스틱 파이터 Stick Fighter 박하은.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
7주차 실습 FPGA 보드 사용법.
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부.
객체기반 SW설계 팀활동지 4.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
단축키 기능 1. 단축키 기능 설명 Alt + R 조회 S 저장 I 삽입 A 추가 D 삭제 P 출력 Q 닫기
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
메뉴(Menu) 컴퓨터응용 및 실습 I.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
.Net FrameWork for Web2.0 한석수
Installation Guide.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
MFC 기초 윈도우 응용프로그램 개발 간략한 역사 Microsoft Foundation Classes
BoardGame 보드게임 따라가기.
Presentation transcript:

MFC Application Frameworks (AFX) 컴퓨터 계측 및 실습 (출처 : 제1회 지킴이 워크샵에서 저자가 발표한 강좌 내용)

MFC 란? Microsoft Foundation Class (마이크로소프트 사의 기반 클래스) Visual C++과 함께 제공되는 내장 클래스 (Library Class) Visual C++을 사용해 윈도우 프로그램을 간단하게 개발할 수 있는 유용한 클래스 기본 Window의 형태들을 새로 만들지 않고 MFC를 상속받아 그냥 쓰면 됨 프로그래머의 작업시간을 단축시켜줌

MFC 개요도 AppWizard ……………………… ………………………………. ……………………………. ……………… 이미 정의된 상속 이미 정의된 클래스들 AppWizard CMyApp clsss CMyDoc class CMainFrame class CMyView class 기본 골격만 갖춘 창

Object Oriented Programming 실객체를 표현한 소프트웨어 객체로 프로그램 구성 소프트웨어 객체들의 상호 동작으로 프로그램 수행 실객체 실세계 사건 소프트웨어 객체 프로그램 세계 메시지 있는 그대로 표현

Object Oriented Programming 프레임 윈도우 오브젝트 메뉴 오브젝트 툴바 오브젝트 뷰 오브젝트 상태바 오브젝트

Object 분리 예 = +

일관된 사용자 인터페이스

Application Frameworks (AFX) CDocument 데이터를 저장, 처리 (눈에는 안보임) CFrameWnd 윈도우의 프레임(틀)을 관리 CView 데이터를 보여주는 윈도우 CWinApp 위의 세 오브젝트를 묶어주고, 프로그램을 구동 시킴 (눈에는 안보임)

AFX 클래스의 계층 구조 거의 모든 MFC 클래스의 기반 클래스 커맨드 메세지를 받는 기능 프로그램을 구동시키는 기능 CCmdTarget CWinApp CDocument CObject CWnd CFrameWnd CView 거의 모든 MFC 클래스의 기반 클래스 커맨드 메세지를 받는 기능 프로그램을 구동시키는 기능 데이터를 저장하고 처리하는 기능 윈도우에 관련된 기능 (눈에 보이는 오브젝트) 프로그램 윈도우 프레임(외곽)을 관리하는 기능 데이터를 보여주는 윈도우 관리하는 기능

AppWizard MFC 기반 클래스 파생 클래스 CCmdTarget CWinApp CDocument CObject CWnd CFrameWnd CView MFC 기반 클래스 CMyApp CMyDoc CMainFrame CMyView 파생 클래스

CFrameWnd CWinApp CDocument CView protected/private 멤버 멤버 함수 멤버 변수 CMyApp 클래스의 인스턴스 (전역 변수)

CWinApp 클래스 (프로그램을 구동시키는 기능) 프로그램의 시작과 종료 담당 전역 변수로 인스턴스 생성 프레임 윈도우 생성 메시지 루프 (무한루프) InitInstance( ); Run( ); ExitInstance( );

CWinApp 클래스의 동작 CWinApp 프로그램 시작 무한 루프 프로그램 종료 InitInstance( ) Run( ) ExitInstance( ) 프로그램 종료

CWinApp 파생 클래스의 동작 CWinApp CMyApp 상 속 프로그램 시작 프로그램 종료 무한 루프 InitInstance( ) Run( ) ExitInstance( ) 프로그램 종료 무한 루프 InitInstance( ) ExitInstance( )

CWinApp 파생 클래스의 구현 class CMyApp : public CWinApp { public: CMyApp(); // Overrides virtual BOOL InitInstance(); };

CWinApp 파생 클래스의 구현 BOOL CMyApp::InitInstance() { CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CMyDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CMyView)); AddDocTemplate(pDocTemplate); return TRUE; }

CWnd 클래스 (윈도우에 관련된 기능) 윈도우 제어용 멤버 함수 (100여 개) 메시지 핸들러 함수 (200여 개)

윈도우 메시지 윈도우 메시지 발생하는 상황 WM_CREATE 윈도우가 생성될 때 WM_ACTIVATE 활성화 되거나 비 될 WM_PAINT 다시 그려져야 할 필요가 있을 WM_MOUSEMOVE 윈도우의 위에서 마우스 커서가 움직였을 WM_COMMAND 사용자가 메뉴나 버튼을 눌러 명령을 내렸을 WM_LBUTTONDOWN 왼쪽 버튼이 눌렸을 WM_LBUTTONUP 떼어졌을 WM_LBUTTONDBLCLK 더블 클릭 됐을 WM_KEYDOWN 키보드가 WM_KEYUP WM_SIZE 크기가 변경되었을 WM_MOVE 이동 되었을 WM_TIMER 윈도우에 설정된 타이머의 시간이 다 WM_DESTROY 없어질

메시지 큐 윈도우 오퍼레이팅 시스템 메시지 프로그램 메시지 큐 CWinApp::Run( ) { switch( ) case : } 메시지 핸들러 WM_CREATE WM_ACTIVATE OnCreate OnActivate OnMove WM_ACTIVATE WM_MOVE

ClassWizard 클래스 선택 현재 클래스에서 오버라이딩 가능한 함수 목록 현재 클래스에서 이미 오버라이딩 된 함수 목록 이미 오버라이딩 된 함수 목록에서 선택된 함수를 삭제 이미 오버라이딩 된 함수 편집

Message Map

Microsoft Developer Studio

MFC AppWizard File 메뉴 New항목

Step 1 : Application Program type Setting

Step 2 : Database Setting

Step 3 : OLE Setting

Step 4 : 화면 구성 Setting

Step 5 : 프로그램 소스 Setting

Step 6 : Class name & File Setting

프로젝트에 대한 정보 및 설명

응용 마법사가 만든 문서 편집기

실습 클래스마법사(Class Wizard)사용법

왼쪽 마우스 버튼을 누르면 글자 생성 클래스마법사를 사용하여 마우스의 왼쪽 버턴을 클릭 했을 때, “ Hello! Event-Driven”문자열 출력

클래스마법사 실행

클래스마법사에서 View 클래스 지정 1 2 3

WM_LBUTTONDOWN 메시지 오버라이딩

오버라이딩된 함수 정의 개별화 되는 작업 내용입력

프로그램 실행

참고 - 워크스페이스 창 클래스 뷰 리소스 뷰 파일 뷰 논리적인 단위 요소들에 대한 목록들을 보여 준다. 프로젝트에서 정의되는 리소스 목록들을 보여 준다 프로젝트에 정의된 파일의 목록들을 보여 준다

다음주 실습 내용 (다이얼로그 베이스를 이용한 사칙연산)