50
01 윈윈윈 윈윈윈윈윈 윈윈 : 학학 학학 학학학 학학학학학 학학학 학학 학학학학학 학학학 학학학학 . SDK 학학 학학학학 학학 학학 , 학학 학학 , 학학 학학학 학학학학 . MFC 학학 학학학학 학학 학학 , 학학 학학 , 학학 학학학 학학학학 . 학학학 C++ 학학 학학 학학학학 학학학 .

윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK 응용 프로그램 작성 과정 , 기본 구조 , 동작 원리를 이해한다

Embed Size (px)

DESCRIPTION

윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK 응용 프로그램 작성 과정 , 기본 구조 , 동작 원리를 이해한다 . MFC 응용 프로그램 작성 과정 , 기본 구조 , 동작 원리를 이해한다 . 비주얼 C++ 개발 환경 사용법을 익힌다. 윈도우 운영체제 특징 (1/3). 그래픽 사용자 인터페이스. 이벤트 발생. 대기. 시스템 메시지 대기열. 응용 프로그램 메시지 대기열 #3. 처리. 응용 프로그램 메시지 대기열 #2. 처리. 응용 프로그램 메시지 대기열 #1. - PowerPoint PPT Presentation

Citation preview

Page 1: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

01윈도우 프로그래밍 기초:

학습 목표

윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 .

SDK 응용 프로그램 작성 과정 , 기본 구조 , 동작 원리를 이해한다 .

MFC 응용 프로그램 작성 과정 , 기본 구조 , 동작 원리를 이해한다 .

비주얼 C++ 개발 환경 사용법을 익힌다 .

Page 2: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

2

윈도우 운영체제 특징 (1/3)

그래픽 사용자 인터페이스

Page 3: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

3

윈도우 운영체제 특징 (2/3)

메시지 구동 구조

시스템메시지대기열

이벤트 발생

응용 프로그램메시지 대기열 #1

응용 프로그램메시지 대기열 #2

응용 프로그램메시지 대기열 #3

...

처리

대기

처리

Page 4: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

4

윈도우 운영체제 특징 (3/3)

멀티태스킹여러 개의 응용 프로그램을 수행

멀티스레딩하나의 응용 프로그램에 여러 개의 실행 흐름을 생성

Page 5: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

5

윈도우 응용 프로그램 특징 (1/4)

API 호출문 집합API(Application Programming Interface): 윈도우

운영체제가 응용 프로그램을 위해 제공하는 각종 함수 집합

call API#1

응용 프로그램

call API#2...

call API#3call API#4

...call API#n

Page 6: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

6

윈도우 응용 프로그램 특징 (2/4)

메시지 핸들러 집합메시지 핸들러 (Message Handler): 메시지를 받았을

때 동작을 결정하는 코드

윈도우 프로시저 : 메시지 핸들러 집합

메시지 핸들러 #1

응용 프로그램

메시지 핸들러 #2메시지 핸들러 #3메시지 핸들러 #4메시지 핸들러 #5메시지 핸들러 #6

...

...

Page 7: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

7

윈도우 응용 프로그램 특징 (3/4)

실행 파일과 DLL 집합DLL(Dynamic-Link Library): 프로그램이 실행 중에

호출할 수 있는 함수 ( 코드 ) 와 리소스

실행 파일

응용 프로그램

DLL #1DLL #2DLL #3DLL #4DLL #5

...

Page 8: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

8

윈도우 응용 프로그램 특징 (4/4)

장치 독립적

응용 프로그램 API 장치 드라이버 주변 장치

Page 9: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

9

윈도우 응용 프로그램 개발 도구 (1/3)

SDK(Software Development Kit)C 언어로 윈도우 API 를 직접 호출해서 프로그램을

구현 장점

API 를 직접 다루기 때문에 세부적인 제어가 가능하고 , 윈도우 운영체제가 제공하는 모든 기능을 사용할 수 있다 .

생성 코드의 크기가 작고 속도가 빠르다 . 단점

생산성이 낮다 .

Page 10: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

10

윈도우 응용 프로그램 개발 도구 (2/3)

RAD(Rapid Application Development)시각적으로 화면을 디자인하고 코드를 추가하는

방법으로 프로그램을 빠르게 개발 장점

생산성이 높다 . 단점

일반적으로 생성 코드의 크기가 크고 실행 속도가 느리다 .

운영체제가 제공하는 모든 기능을 활용한 세부적인 제어가 어렵다 .

Page 11: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

11

윈도우 응용 프로그램 개발 도구 (3/3)

클래스 라이브러리 (Class Library)윈도우 응용 프로그램 개발에 필수적인 기능을 객체

지향 언어를 이용하여 클래스로 제공 장점

SDK 보다 생산성이 높다 .RAD 보다 생성 코드의 크기가 작고 실행 속도가 빠르다 .

단점초기 학습에 필요한 기간이 길다 .

– 객체 지향 언어– 클래스 라이브러리 구조와 기능 , 각 클래스의 관계 파악

Page 12: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

12

HelloSDK 예제 작성 (1/9)

프로젝트 생성

Page 13: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

13

HelloSDK 예제 작성 (2/9)

1 단계 옵션 설정

Page 14: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

14

HelloSDK 예제 작성 (3/9)

소스 파일 추가

Page 15: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

15

HelloSDK 예제 작성 (4/9)

코드 입력#include <windows.h>// WinMain( ) 함수에서 참조하므로 함수 원형을 선언한다 .LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ HWND hwnd; MSG msg; WNDCLASS wndclass // 윈도우 클래스를 초기화하고 운영체제에 등록한다 . wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance;

Page 16: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

16

HelloSDK 예제 작성 (5/9)

wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = "HelloClass"; if(!RegisterClass(&wndclass)) return -1;

// 윈도우를 생성하고 화면에 보이게 한다 . hwnd = CreateWindow("HelloClass", "HelloSDK Application", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd);

Page 17: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

17

HelloSDK 예제 작성 (6/9)

// 메시지 대기열에서 메시지를 하나씩 꺼내 처리한다 . while(GetMessage(&msg, NULL, 0, 0) > 0){ TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam;}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ HDC hdc; PAINTSTRUCT ps; char *str = "Hello, SDK";

Page 18: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

18

HelloSDK 예제 작성 (7/9)

// 메시지 종류에 따라 응용 프로그램이 적절히 처리한다 . switch(message) { case WM_CREATE: return 0; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); TextOut(hdc, 100, 100, str, lstrlen(str)); EndPaint(hwnd, &ps); return 0; case WM_LBUTTONDOWN: MessageBox(hwnd, " 마우스를 클릭했습니다 .", " 마우스 메시지 ", MB_OK); return 0;

Page 19: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

19

HelloSDK 예제 작성 (8/9)

case WM_DESTROY: PostQuitMessage(0); return 0; }

// 응용 프로그램이 처리하지 않으면 윈도우 운영체제가 처리한다 . return DefWindowProc(hwnd, message, wParam, lParam);}

Page 20: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

20

HelloSDK 예제 작성 (9/9)

실행 화면

Page 21: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

21

HelloSDK 예제 분석 (1/7)

헤더 파일

메인 함수

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ ...

Page 22: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

22

HelloSDK 예제 분석 (2/7)

윈도우 클래스 초기화와 등록

wndclass.style = CS_HREDRAW | CS_VREDRAW;wndclass.lpfnWndProc = WndProc;wndclass.cbClsExtra = 0;wndclass.cbWndExtra = 0;wndclass.hInstance = hInstance;wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);wndclass.lpszMenuName = NULL;wndclass.lpszClassName = "HelloClass";if(!RegisterClass(&wndclass)) return -1;

Page 23: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

23

HelloSDK 예제 분석 (3/7)

윈도우 생성

hwnd = CreateWindow("HelloClass", "HelloSDK Application", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd);

Page 24: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

24

HelloSDK 예제 분석 (4/7)

메시지 루프

while(GetMessage(&msg, NULL, 0, 0) > 0){ TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam;

Page 25: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

25

HelloSDK 예제 분석 (5/7)

윈도우 프로시저

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ HDC hdc; PAINTSTRUCT ps; char *str = "Hello, SDK";

// 메시지 종류에 따라 응용 프로그램이 적절히 처리한다 . switch(message) { case WM_CREATE: return 0; case WM_PAINT: hdc = BeginPaint(hwnd, &ps);

Page 26: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

26

HelloSDK 예제 분석 (6/7)

TextOut(hdc, 100, 100, str, lstrlen(str)); EndPaint(hwnd, &ps); return 0; case WM_LBUTTONDOWN: MessageBox(hwnd, " 마우스를 클릭했습니다 .", " 마우스 메시지 ", MB_OK); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; }

// 응용 프로그램이 처리하지 않으면 윈도우 운영체제가 처리한다 . return DefWindowProc(hwnd, message, wParam, lParam);}

Page 27: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

27

HelloSDK 예제 분석 (7/7)

요약

시스템메시지대기열

이벤트 발생

응용 프로그램메시지 대기열 #1

응용 프로그램메시지 대기열 #2

응용 프로그램메시지 대기열 #3

...

응용 프로그램 #1

메시지 루프

메시지 핸들러 #1메시지 핸들러 #2메시지 핸들러 #3

...

DefWindowProc

윈도우 프로시저

Page 28: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

28

HelloMFC 예제 작성 (1/9)

프로젝트 생성

Page 29: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

29

HelloMFC 예제 작성 (2/9)

1 단계 옵션 설정

Page 30: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

30

HelloMFC 예제 작성 (3/9)

소스 파일 추가

Page 31: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

31

HelloMFC 예제 작성 (4/9)

코드 입력#include <afxwin.h>

// 클래스 선언부class CHelloApp : public CWinApp{public: virtual BOOL InitInstance();};

class CMainFrame : public CFrameWnd{public: CMainFrame();

Page 32: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

32

HelloMFC 예제 작성 (5/9)

protected: afx_msg void OnPaint(); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); DECLARE_MESSAGE_MAP()};

// 응용 프로그램 객체CHelloApp theApp;

// 클래스 정의부BOOL CHelloApp::InitInstance(){ m_pMainWnd = new CMainFrame; m_pMainWnd->ShowWindow(m_nCmdShow);

Page 33: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

33

HelloMFC 예제 작성 (6/9)

m_pMainWnd->UpdateWindow(); return TRUE;}

CMainFrame::CMainFrame(){ Create(NULL, "HelloMFC Application");}

void CMainFrame::OnPaint(){ char *msg = "Hello, MFC"; CPaintDC dc(this);

Page 34: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

34

HelloMFC 예제 작성 (7/9)

dc.TextOut(100, 100, msg, lstrlen(msg));}

void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point){ MessageBox(" 마우스를 클릭했습니다 .", " 마우스 메시지 ");}

// 메시지맵BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_PAINT() ON_WM_LBUTTONDOWN()END_MESSAGE_MAP()

Page 35: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

35

HelloMFC 예제 작성 (8/9)

프로젝트 설정 변경

Page 36: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

36

HelloMFC 예제 작성 (9/9)

실행 화면

Page 37: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

37

HelloMFC 예제 분석 (1/7)

헤더 파일

클래스 선언부

#include <afxwin.h>

class CHelloApp : public CWinApp{public: virtual BOOL InitInstance();};

Page 38: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

38

HelloMFC 예제 분석 (2/7)

class CMainFrame : public CFrameWnd{public: CMainFrame();

protected: afx_msg void OnPaint(); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); DECLARE_MESSAGE_MAP()};

클래스 선언부 (cont’d)

Page 39: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

39

HelloMFC 예제 분석 (3/7)

응용 프로그램 객체

MFC 응용 프로그램의 구조

CHelloApp theApp;

하나의 응용 프로그램 객체

여러 종류의클래스 선언 및 정의

Page 40: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

40

HelloMFC 예제 분석 (4/7)

클래스 정의부

BOOL CHelloApp::InitInstance(){ m_pMainWnd = new CMainFrame; m_pMainWnd->ShowWindow(m_nCmdShow); m_pMainWnd->UpdateWindow(); return TRUE;}

CMainFrame::CMainFrame(){ Create(NULL, "HelloMFC Application");}

Page 41: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

41

HelloMFC 예제 분석 (5/7)

클래스 정의부 (cont’d)

void CMainFrame::OnPaint(){ char *msg = "Hello, MFC"; CPaintDC dc(this);

dc.TextOut(100, 100, msg, lstrlen(msg));}

void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point){ MessageBox(" 마우스를 클릭했습니다 .", " 마우스 메시지 ");}

Page 42: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

42

HelloMFC 예제 분석 (6/7)

메시지맵

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_PAINT() ON_WM_LBUTTONDOWN()END_MESSAGE_MAP()

Page 43: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

43

HelloMFC 예제 분석 (7/7)

요약

WinMain( ) // MFC 의 내부에 숨겨진 프로그램 실행의 시작점{ // ptr 은 포인터로서 응용 프로그램 객체의 주소값을 가지고 있다 . ... ptr->InitInstance( ); // 초기화 : 프레임 윈도우 객체를 생성한다 . // 프레임 윈도우 객체의 생성자에서 // 실제 윈도우가 만들어진다 . ptr->Run( ); // 메시지 루프 : 프레임 윈도우에게 메시지를 보낸다 . // 프레임 윈도우가 받은 메시지의 종류에 따라 // 해당 메시지 핸들러가 적절히 호출된다 . ptr->ExitInstance( ); // 종료 : 각종 청소 작업을 수행한다 . ...}

Page 44: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

44

비주얼 C++ 통합 개발 환경

Page 45: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

45

메뉴

메뉴

팝업 메뉴 = 컨텍스트 메뉴

Page 46: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

46

툴바

툴바

사용자 정의 툴바 추가

Page 47: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

47

워크스페이스

ClassView FileView ResourceView

Page 48: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

48

편집기

Page 49: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

49

AppWizard

Page 50: 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다 . SDK  응용 프로그램 작성 과정 ,  기본 구조 ,  동작 원리를 이해한다

50

ClassWizard