상세정보

d

d

dd
dd

[열혈강의] Visual C++ 2008 MFC 윈도우 프로그래밍

전문 윈도우 개발자로 가기 위한 빠른 선택

지은이 |   최호성
옮긴이 |   
발행일 |   2009-02-05
페이지 |   1,248가격 |   35,000원
ISBN |   978-89-89345-96-1
분야 |   프로그래밍 언어, Visual C++, 윈도우 프로그래밍
dddddd

[열혈강의] Visual C++ 2008 MFC 윈도우 프로그래밍

전문 윈도우 개발자로 가기 위한 빠른 선택

지은이 |   최호성
옮긴이 |   
발행일 |   2009-02-05
페이지 |   1,248
가격 |   35,000원
ISBN |   978-89-89345-96-1
분야 |   프로그래밍 언어, Visual C++, 윈도우 프로그래밍
ddd
ddd
대부분의 개발자가 MFC를 이용하여 윈도우 프로그래밍을 하고 있음에도 불구하고 마치 Win32 API를 모두 이해한 후에 MFC를 배워야 한다고 생각하는 편이다. 게다가 윈도우를 개발하는 방법으로 Win32와 MFC를 이해하는 것이 아니라 그 자체를 학습 대상으로 여기는 경우가 많다. 이에 부응하듯 대부분의 국내 도서는 이론에 극단적으로 치우치거나 불필요하게 방대한 내용으로 입문자를 불편하게 하고 있으며, 이로 인해 많은 사람들이 윈도우 프로그래밍은 어렵다는 잘못된 선입견을 갖게 되었다. 또한 실무에 종사하는 많은 사람들이 아직도 Visual C++ 6.0 컴파일러를 사용하고 있지만 Visual C++ 2008 버전이 새로 출시되면서 새 컴파일러로의 이동을 시작하고 있다. 이는 Visual C++ 6.0이 최신 CPU 및 운영체제에 대한 개발 요구를 만족시킬 수 없기 때문이다.

이와 같은 두 가지 요구에 맞추어 비교적 간결한 내용의 윈도우 프로그래밍 입문서를 집필하되 최신 컴파일러 사용 환경과 프로그래밍 기법을 담으려 하였다. 가장 중요한 기획 의도는 입문자를 위한 쉽고 간결한 설명이 될 것이며, 많은 내용을 담아 시작도 하기 전에 포기하는 것이 아니라 누구나 쉽게 접근할 수 있는 느낌을 전달하도록 하고 있다. 이외에 중/고급 사용자들도 알아야 할 일부 고급 프로그래밍 기법을 함께 다룸으로써 기술적 내용의 충실도를 높이고 불필요하게 내용이 커지는 것을 막기 위해 선택의 여지가 있는 모든 내용은 온라인 강의와 문서로 대체하고 있다. 결과적으로 책 자체의 부피는 줄이되 핵심 내용은 요약하여 전달하고 있으며, 고급 기술이나 길어지는 설명들은 모두 강의와 온라인 문서로 대체하여 초급 입문자에서 중급 이상 사용자에 이르는 활용서가 되도록 하였다.

본 도서는 단순히 윈도우 프로그래밍 기법을 다루는 것 이외에 '고급 사용자 인터페이스의 개발'이라는 보다 실질적인 목표를 염두에 두고 내용을 구성하였습니다. 물론 눈에 보이는 사용자 인터페이스 외에 윈도우 시스템 프로그래밍의 핵심 원리에 대해서도 다루었습니다. 그리고 대부분의 예제가 실무에서 사용하여 검증을 거친 것들입니다.

1. 전문 윈도우 개발자를 양성한다는 목표로 내용 구성
2. 실무 활용도가 높은 검증된 예제를 수록
3. MFC v9.0 기반의 최신 프로그래밍 기법 수록
4. 윈도우 시스템 프로그래밍까지 한 번에 학습

이 책이 필요하신 분
1. 윈도우 프로그래밍을 배우려는 개발 입문자
2. 실전 감각을 익히고자 하는 초급 개발자
3. MFC Feature Pack과 같은 최신 기법을 배우려는 중급 개발자
4. 윈도우 시스템 프로그래밍을 빠르게 정리하고자 하는 독자
[들어가기에 앞서] Part 1 윈도우 프로그래밍의 기본
1장 윈도우 프로그래밍 모델
__1.1 윈도우 프로그래밍의 시작(HelloWorld)
__1.2 메시지 큐(Message Queue)
__1.3 윈도우의 등록과 생성
__1.4 메인 메시지 루프
__1.5 윈도우 프로시저 함수

2장 CWnd 클래스
__2.1 MFC에 대해서
__2.2 CWnd 클래스
__2.3 초기화 관련 메서드

3장 MFC 코드의 기본 구조
__3.1 윈도우들의 구성과 기본 구조
__3.2 CWinApp 클래스
__3.3 CFrameWnd 클래스
__3.4 CDocument 클래스
__3.5 메시지 맵(Message Map)

4장 MFC 코드의 흐름
__4.1 분석 대상 코드 작성
__4.2 MFC 응용 프로그램의 시작
__4.3 MFC 응용 프로그램의 종료
__4.4 메시지의 발생과 처리

5장 키보드 입력
__5.1 키보드 메시지
__5.2 시스템 키보드 메시지

6장 마우스 입력
__6.1 마우스 메시지
__6.2 마우스 움직임의 조합
__6.3 마우스 이벤트의 추적

7장 GDI 기본
__7.1 GDI와 DC에 대해서
__7.2 WM_PAINT 메시지와 DC(Device Context)
__7.3 펜(Pen)과 브러시(Brush)
__7.4 각종 도형 그리기
__7.5 글꼴(Font)과 문자열 다루기
__7.6 직접 버튼 컨트롤 구현하기

8장 비트맵과 이미지 처리
__8.1 전형적인 이미지 출력
__8.2 고급 이미지 출력 함수
__8.3 CImage 클래스의 활용
__8.4 색상(Color)의 변환

9장 GDI 고급
__9.1 윈도우 영역
__9.2 그리기(Drawing) 모드
__9.3 매핑(Mapping) 모드
__9.4 프린터 출력

Part 2 컨트롤 및 기본 프레임워크
10장 메뉴/바로 가기 키/도구 모음/상태 표시줄
__10.1 기본 메뉴
__10.2 바로 가기 키(Shortcut Key)
__10.3 응용 메뉴
__10.4 도구 모음(Toolbar)과 상태 표시줄(Status Bar)

11장 컨트롤 윈도우의 기본
__11.1 스태틱 텍스트(Static Text)
__11.2 에디트 컨트롤
__11.3 대화 상자 기반(Dialogbased) 응용 프로그램
__11.4 컨트롤 윈도우의 리소스 속성 제어
__11.5 링크(Link) 컨트롤
__11.6 통지 메시지(Notification Message)

12장 버튼 컨트롤
__12.1 버튼(Button) 컨트롤
__12.2 확인란(Check Box)
__12.3 라디오 버튼(Radio Button)
__12.4 윈도우 비스타 전용 버튼

13장 목록 상자(List Box)와 콤보 상자(Combo Box)
__13.1 목록 상자(List Box)
__13.2 콤보 상자(Combo Box)
__13.3 확장 콤보 상자(Combo Box)

14장 프로그레스(Progress) 컨트롤/슬라이더(Slider) 컨트롤/스핀(Spin) 컨트롤
__14.1 프로그레스(Progress) 컨트롤
__14.2 슬라이더(Slider) 컨트롤
__14.3 스핀(Spin) 컨트롤

15장 리스트(List) 컨트롤/트리(Tree) 컨트롤
__15.1 리스트(List) 컨트롤
__15.2 트리(Tree) 컨트롤
__15.3 드래그 앤 드롭(Drag-and-drop)

16장 기타 컨트롤
__16.1 페이저(Pager) 컨트롤
__16.2 애니메이션(Animation) 컨트롤
__16.3 달력 컨트롤(Month Calendar 컨트롤/Date Time Picker 컨트롤)
__16.4 IP 주소(Address) 컨트롤
__16.5 네트워크 주소(Network Address) 컨트롤
__16.6 탭(Tab) 컨트롤

17장 대화 상자(Dialog Box)
__17.1 사용자 정의 대화 상자(Dialog Box)
__17.2 공용 대화 상자(Common Dialog Box)
__17.3 HTML 대화 상자
__17.4 메시지 상자(Message Box)

Part 3 고급 사용자 인터페이스
18장 깜빡임 방지
__18.1 화면 그리기의 구조
__18.2 눈속임의 미학
__18.3 더블 버퍼링(Double Buffering)

19장 다중 뷰(Multiple View)
__19.1 동적 분할 윈도우
__19.2 정적 분할 윈도우
__19.3 MDI를 닮은 SDI
__19.4 스크롤 뷰(Scroll View)

20장 MFC의 구조와 이론
__20.1 SDI(Single Document Interface)
__20.2 직렬화(Serialization)
__20.3 MDI(Multiple Documents Interface)
__20.4 MFC 객체 간의 접근 방법

21장 특별한 메시지
__21.1 사용자 정의 메시지
__21.2 타이머(Timer)
__21.3 윈도우 세션(Session)의 종료
__21.4 사용자 전환

22장 서브 클래싱(Sub-classing)과 확장 컨트롤
__22.1 서브 클래싱(Sub-classing)
__22.2 오너 드로우(Owner-draw) 버튼
__22.3 확장 프로그레스(Progress) 컨트롤

23장 GDI+
__23.1 GDI+에 대해서
__23.2 펜과 직선 그리기
__23.3 곡선과 안티 에일리어싱(Anti-aliasing)
__23.4 도형 그리기
__23.5 브러시(Brush)
__23.6 외부 이미지 파일의 처리
__23.7 글꼴(Font)과 문자열 그리기
__23.8 경로(Path)와 영역(Region)
__23.9 좌표계 변환

Part 4 MFC Feature Pack
24장 기본 구조
__24.1 MFC Feature Pack에 대해서
__24.2 새롭게 지원되는 사항
__24.3 MFC Feature Pack 프레임워크

25장 패인(Pane) 윈도우
__25.1 도킹(Docking) 패인(Pane)
__25.2 도구 모음(Toolbar)
__25.3 도구 모음의 버튼 스타일 변경
__25.4 상태 표시줄(Status Bar)

26장 비주얼 스타일
__26.1 Office 2003 스타일
__26.2 Visual Studio 2005 스타일
__26.3 Office 2007 스타일

27장 확장 컨트롤
__27.1 Property Grid 컨트롤
__27.2 확장 탭 컨트롤
__27.3 쉘 트리 컨트롤/쉘 리스트 컨트롤

Part 5 윈도우 시스템 프로그래밍
28장 시스템 프로그래밍 기본
__28.1 콜 컨벤션(Call Convention)
__28.2 가상 메모리(Virtual Memory)
__28.3 유니코드

29장 멀티스레드
__29.1 스레드(Thread)에 대해서
__29.2 작업자 스레드(Worker Thread)
__29.3 사용자 인터페이스 스레드

30장 커널 객체(Kernel Object)와 동기화(Synchronization)
__30.1 커널 객체(Kernel Object)
__30.2 이벤트의 활용

31장 프로세스 간의 통신(Inter Process Communication)
__31.1 공유 메모리를 이용한 IPC
__31.2 클립보드를 이용한 IPC

32장 DLL(Dynamic Linking Library)
__32.1 DLL과 DllMain( ) 함수
__32.2 암시적(Implict) 링크
__32.3 명시적(Explicit) 링크
__32.4 실무자를 위한 충고

Part 6 기타 주제
33장 레지스트리(Registry)
__33.1 레지스트리와 관련 API 함수
__33.2 설치한 프로그램 목록
__33.3 MFC와 레지스트리

34장 쉘(Shell) 인터페이스 다루기
__34.1 트레이(Tray) 아이콘
__34.2 응용 프로그램의 정보 변경
__34.3 쉘(Shell)의 재시작 감지

35장 디버깅(Debugging)
__35.1 빌드 모드
__35.2 위치 중단점(Breakpoint)
__35.3 PDB 파일과 호출 스택
__35.4 데이터 중단점(Breakpoint)
__35.5 조건 데이터 중단점(Breakpoint)
__35.6 디버그 매크로와 함수
__35.7 실행 중인 프로세스에 연결
__35.8 원격(Remote) 디버깅

36장 데이터베이스(Database)
__36.1 DBMS(Database Management System)
__36.2 ODBC(Open Database Connectivity)
__36.3 OLE-DB(Object Linking and Embedding-DB)

37장 MFC를 이용한 TCP/IP 소켓 프로그래밍
__37.1 TCP/IP에 대해서
__37.2 TCP/IP 소켓 프로그래밍
최호성

지난 수년간 윈도우 기반의 보안 소프트웨어를 개발해왔으며, 한국전자통신연구원과 옛 정보통신부가 주도한 다수의 기술연구 용역 및 국책 과제에 참여하였다. 또한 SafeNET, TimeKeeper, CyberWALL 등 다수의 상용 소프트웨어 개발에 참여했으며, 한국전자통신연구원과 공동으로 온라인 게임 서버 성능 평가시스템 개발 프로젝트를 진행하였다. 현재 비트교육센터와 SDS 멀티캠퍼스에서 강의하고 있다. 저서로 『MFC 정복』(가남사), 『윈도우 프로그래밍 기초/고급편』(프리렉), 『Visual C++ 2008 MFC 윈도우 프로그래밍』(프리렉), 『최호성의 C 프로그래밍』(프리렉)이 있다.

대부분의 개발자가 MFC를 이용하여 윈도우 프로그래밍을 하고 있음에도 불구하고 마치 Win32 API를 모두 이해한 후에 MFC를 배워야 한다고 생각하는 편이다. 게다가 윈도우를 개발하는 방법으로 Win32와 MFC를 이해하는 것이 아니라 그 자체를 학습 대상으로 여기는 경우가 많다. 이에 부응하듯 대부분의 국내 도서는 이론에 극단적으로 치우치거나 불필요하게 방대한 내용으로 입문자를 불편하게 하고 있으며, 이로 인해 많은 사람들이 윈도우 프로그래밍은 어렵다는 잘못된 선입견을 갖게 되었다. 또한 실무에 종사하는 많은 사람들이 아직도 Visual C++ 6.0 컴파일러를 사용하고 있지만 Visual C++ 2008 버전이 새로 출시되면서 새 컴파일러로의 이동을 시작하고 있다. 이는 Visual C++ 6.0이 최신 CPU 및 운영체제에 대한 개발 요구를 만족시킬 수 없기 때문이다.

이와 같은 두 가지 요구에 맞추어 비교적 간결한 내용의 윈도우 프로그래밍 입문서를 집필하되 최신 컴파일러 사용 환경과 프로그래밍 기법을 담으려 하였다. 가장 중요한 기획 의도는 입문자를 위한 쉽고 간결한 설명이 될 것이며, 많은 내용을 담아 시작도 하기 전에 포기하는 것이 아니라 누구나 쉽게 접근할 수 있는 느낌을 전달하도록 하고 있다. 이외에 중/고급 사용자들도 알아야 할 일부 고급 프로그래밍 기법을 함께 다룸으로써 기술적 내용의 충실도를 높이고 불필요하게 내용이 커지는 것을 막기 위해 선택의 여지가 있는 모든 내용은 온라인 강의와 문서로 대체하고 있다. 결과적으로 책 자체의 부피는 줄이되 핵심 내용은 요약하여 전달하고 있으며, 고급 기술이나 길어지는 설명들은 모두 강의와 온라인 문서로 대체하여 초급 입문자에서 중급 이상 사용자에 이르는 활용서가 되도록 하였다.

본 도서는 단순히 윈도우 프로그래밍 기법을 다루는 것 이외에 '고급 사용자 인터페이스의 개발'이라는 보다 실질적인 목표를 염두에 두고 내용을 구성하였습니다. 물론 눈에 보이는 사용자 인터페이스 외에 윈도우 시스템 프로그래밍의 핵심 원리에 대해서도 다루었습니다. 그리고 대부분의 예제가 실무에서 사용하여 검증을 거친 것들입니다.

1. 전문 윈도우 개발자를 양성한다는 목표로 내용 구성
2. 실무 활용도가 높은 검증된 예제를 수록
3. MFC v9.0 기반의 최신 프로그래밍 기법 수록
4. 윈도우 시스템 프로그래밍까지 한 번에 학습

이 책이 필요하신 분
1. 윈도우 프로그래밍을 배우려는 개발 입문자
2. 실전 감각을 익히고자 하는 초급 개발자
3. MFC Feature Pack과 같은 최신 기법을 배우려는 중급 개발자
4. 윈도우 시스템 프로그래밍을 빠르게 정리하고자 하는 독자