서브메뉴

본문

기초에서 실무까지 윈도우 프로그래밍 : 기초편
기초에서 실무까지 윈도우 프로그래밍 : 기초편
저자 : 최호성
출판사 : 프리렉
출판년 : 2006
정가 : 29000, ISBN : 8989345804

책소개


이 책은 윈도우 프로그래밍 입문을 바라는 독자들을 위해 기획된 도서로서 C나 C++을 배운 적인 있는 독자들에게 권한다. 윈도우 프로그래밍에 대해서 배우고 싶었지만 너무도 막막했던 새내기 윈도우 프로그래머들에게 윈도우 프로그래밍 세계를 구석구석 친절하게 안내하는 네비게이터로서 손색이 없을 것이다. 기본적인 윈도우 프로그래밍 기법을 해설하고 그 원리를 설명하는 부분에 있어서는 독자가 무엇을 어려워하는지 알고 그러한 부분들에 대한 상세한 해설을 담고 있다.

이 책은 독학한다는 가정을 하고 내용을 전개하였기에 전체적인 분위기가 강의 내용을 글로 옮긴듯한 느낌이 들 수도 있다. 이 책으로 공부하면서 편하다고 단순히 강의를 듣듯이 책을 읽고 넘기지 말고 번거롭더라도 꼭 직접 따라서 코딩하기를 당부한다.

이 책은 총 3부로 각각 '들어가기에 앞서', '윈도우 프로그래밍 기본', '고급 사용자 인터페이스'로 구성되어 있다. C나 C++ 과 같이 선수 과정을 거친 독자들이 워밍업을 하도록 돕는 단계를 거치면 윈도우 프로그래밍에서 꼭 알아야 하는 기본적인 사항들을 배우게 된다. 마지막으로 기본적인 것을 좀더 확장하여 활용하면서 실무 사례 8개의 코드를 설명하여 실전 세계에 대한 관심과 흥미를 유도하면서 마무리하고 있다.

만일 단순히 윈도우 프로그래밍 입문에 그치지 않고 실무 윈도우 개발자로서 한 발을 더 내딛기를 원한다면 이 책과 함께 기획된 '윈도우 프로그래밍 고급편'을 볼 것을 권한다. 디지털 인증 같이 실무 개발자라면 반드시 알고 있어야 하는 부분이 다수 포함되어 있기 때문이다.

한 가지 더 이야기 하자면 대부분의 경우 윈도우 개발자가 되기 위해 C를 공부하고 Win32 API를 공부한 다음 C++을 공부하고, 다시 MFC를 배워야 하는 것으로 알고 있지만 실제로 꼭 그래야 하는 것은 아니다. C++을 공부하고 곧바로 MFC로 넘어가서 배운다고 해도 상관없으며 이 책이 그것을 증명해 줄 것이다.

목차


Part 1 들어가기에 앞서

1.1 알고 있다고 가정하는 것들
1.1.1 C++에 대한 것들
1.1.2 여러 진수와 진법 변환
1.1.3 논리 및 비트 연산
1.1.4 자료구조와 전산개론
1.1.5 포인터와 변수
1.1.6 실행에 대하여
1.1.7 C에서 함수의 중요성

1.2 윈도우 프로그래밍 모델
1.2.1 Hello World! 윈도우 프로그래밍
1.2.2 Win32 API 윈도우 프로그래밍 모델
1.2.3 메시지 큐의 존재
1.2.4 Hello World! 프로그램 소스 분석

1.3 객체지향 Hello World! 프로그램
1.3.1 Hello World! 프로그램 클래스 설계
1.3.2 Hello World! 프로그램 전체 코드

1.4 MFC 버전 Hello World! 프로그램
1.4.1 윈도우의 구성
1.4.2 기본적인 클래스
1.4.3 메시지 맵의 역할
1.4.4 모든 윈도우의 부모 CWnd 클래스

1.5 MFC 프로그램의 시작과 끝
1.5.1 SDI 기반 MFC 응용 프로그램의 시작
1.5.2 SDI 기반 MFC 응용 프로그램의 동작
1.5.3 SDI 기반 MFC 응용 프로그램의 종료

1.6 본격적인 프로그래밍을 위한 준비
1.6.1 윈도우 데이터 형
1.6.2 윈도우 매크로
1.6.3 Stdafx.h/Stdafx.cpp
1.6.4 헝가리안 표기법
1.6.5 MSDN의 활용
1.6.6 개발 시스템 구축

1.7 MFC 컬렉션 및 기본 데이터 클래스
1.7.1 배열 클래스
1.7.2 리스트 클래스
1.7.3 맵 클래스
1.7.4 CString 클래스
1.7.5 CTime/CTimeSpan 클래스
1.7.6 CPoint/CRect/CSize 클래스

Part 2 윈도우 프로그래밍 기본

2.1 키보드 입력 및 처리
2.1.1 KeyMove 프로그램의 작성
2.1.2 WM_CHAR 메시지
2.1.3 캐럿에 대하여

2.2 마우스 입력 및 처리
2.2.1 마우스 메시지
2.2.2 마우스 이벤트 추적
2.2.3 기타 마우스 메시지

2.3 사용자 입력 이벤트 생성

2.4 디버깅에 대하여
2.4.1 디버그 및 릴리즈 모드
2.4.2 브레이크 포인트 설정 및 활용
2.4.3 디버그 매크로
2.4.4 콜 스택과 메모리
2.4.5 디버깅 툴을 이용한 디버깅
2.4.6 데이터 브레이크 포인트

2.5 메뉴 생성 및 활용
2.5.1 메뉴의 생성
2.5.2 메뉴의 관리
2.5.3 단축키 추가
2.5.4 프로그램 코드를 이용한 메뉴 제어
2.5.5 팝업 메뉴

2.6 툴바와 상태 표시줄
2.6.1 툴바
2.6.2 상태 표시줄

2.7 윈도우 기본 컨트롤
2.7.1 스태틱 컨트롤
2.7.2 에디트 컨트롤
2.7.3 스핀 컨트롤
2.7.4 버튼 컨트롤
2.7.5 리스트 박스와 콤보 박스
2.7.6 프로그래스 컨트롤과 슬라이더 컨트롤

2.8 윈도우 공통 컨트롤
2.8.1 리스트 컨트롤
2.8.2 트리 컨트롤
2.8.3 드래그 앤 드롭 기능
2.8.4 탭 컨트롤
2.8.5 애니메이션 컨트롤
2.8.6 캘린더 및 데이트 타임 컨트롤
2.8.7 IP 주소 컨트롤

2.9 대화 상자 윈도우
2.9.1 대화 상자의 기본
2.9.2 프로퍼티 시트
2.9.3 메시지 박스
2.9.4 윈도우 공통 대화상자

2.10 도큐먼트 인터페이스
2.10.1 단일 문서 인터페이스
2.10.2 다중 문서 인터페이스

2.11 GDI와 화면 출력
2.11.1 WM_PAINT 메시지
2.11.2 DC에 대하여
2.11.3 텍스트 출력과 폰트
2.11.4 그리기 모드와 매핑 모드
2.11.5 윈도우의 영역
2.11.6 또 다른 DC 객체들
2.11.7 OnDraw()와 OnPaint()의 차이

2.12 비트맵 처리
2.12.1 투명 및 반투명 비트맵
2.12.2 ::LoadImage() 함수
2.12.3 비트맵으로 저장

2.13 GDI와 프린터 출력
2.13.1 기본 프린트
2.13.2 이미지 프린트

Part 3 고급 사용자 인터페이스

3.1 서브 클래싱을 이용한 확장 컨트롤
3.1.1 하이퍼텍스트 스태틱 컨트롤
3.1.2 배경이 있는 에디트 컨트롤
3.1.3 오너 드로우 기법을 이용한 버튼 컨트롤
3.1.4 텍스트를 출력하는 프로그래스 컨트롤
3.1.5 시스템 이미지를 활용한 리스트 컨트롤

3.2 확장 바 윈도우
3.2.1 툴바의 확장
3.2.2 리바의 활용
3.2.3 컨트롤 바의 활용

3.3 분할 윈도우 인터페이스
3.3.1 동적 분할 윈도우
3.3.2 정적 분할 윈도우
3.3.3 MDI를 닮은 SDI 윈도우

3.4 쉘 및 기타 인터페이스
3.4.1 쉘 인터페이스
3.4.2 기타 인터페이스

코드 1 화면 보호기
코드 2 버튼 윈도우 다시 보기
코드 3 버퍼 DC의 활용
코드 4 맥 OS 흉내 내기
코드 5 오피스 스타일 인터페이스
코드 6 커스텀 컨트롤
코드 7 2D 그래프 컨트롤
코드 8 Syntax 컬러링 에디터