목차
Part 1 들어가기에 앞서
   01장 알고 있다고 가정하는 것들 ... 13
      1.1.1 C++에 대한 것들 ... 15
      1.1.2 여러 진수와 진법 변환 ... 22
      1.1.3 논리 및 비트 연산 ... 27
      1.1.4 자료구조와 전산개론 ... 30
      1.1.5 포인터와 변수 ... 36
      1.1.6 실행에 대하여 ... 42
      1.1.7 C에서 함수의 중요성 ... 45
   02장 윈도우 프로그래밍 모델 ... 49
      1.2.1 Hello World! 윈도우 프로그래밍 ... 54
      1.2.2 Win32 API 윈도우 프로그래밍 모델 ... 60
      1.2.3 메시지 큐의 존재 ... 62
      1.2.4 Hello World! 프로그램 소스 분석 ... 64
   03장 객체지향 Hello World! 프로그램 ... 77
      1.3.1 Hello World! 프로그램 클래스 설계 ... 79
      1.3.2 Hello World! 프로그램 전체 코드 ... 104
   04장 MFC 버전 Hello World! 프로그램 ... 117
      1.4.1 윈도우의 구성 ... 121
      1.4.2 기본적인 클래스 ... 124
      1.4.3 메시지 맵의 역할 ... 135
      1.4.4 모든 윈도우의 부모 CWnd 클래스 ... 140
   05장 MFC 프로그램의 시작과 끝 ... 145
      1.5.1 SDI 기반 MFC 응용 프로그램의 시작 ... 170
      1.5.2 SDI 기반 MFC 응용 프로그램의 동작 ... 177
      1.5.3 SDI 기반 MFC 응용 프로그램의 종료 ... 191
   06장 본격적인 프로그래밍을 위한 준비 ... 195
      1.6.1 윈도우 데이터 형 ... 197
      1.6.2 윈도우 매크로 ... 198
      1.6.3 Stdafx.h/Stdafx.cpp ... 203
      1.6.4 헝가리안 표기법 ... 205
      1.6.5 MSDN의 활용 ... 206
      1.6.6 개발 시스템 구축 ... 214
   07장 MFC 컬렉션 및 기본 데이터 클래스 ... 217
      1.7.1 배열 클래스 ... 219
      1.7.2 리스트 클래스 ... 224
      1.7.3 맵 클래스 ... 230
      1.7.4 CString 클래스 ... 231
      1.7.5 CTime/CTimeSpan 클래스 ... 241
      1.7.6 CPoint/CRect/CSize 클래스 ... 246
Part 2 윈도우 프로그래밍 기본
   01장 키보드 입력 및 처리 ... 249
      2.1.1 KeyMove 프로그램의 작성 ... 252
      2.1.2 WM_CHAR 메시지 ... 269
      2.1.3 캐럿에 대하여 ... 276
   02장 마우스 입력 및 처리 ... 285
      2.2.1 마우스 메시지 ... 287
      2.2.2 마우스 이벤트 추적 ... 317
      2.2.3 기타 마우스 메시지 ... 332
   03장 사용자 입력 이벤트 생성 ... 339
   04장 디버깅에 대하여 ... 349
      2.4.1 디버그 및 릴리즈 모드 ... 351
      2.4.2 브레이크 포인트 설정 및 활용 ... 352
      2.4.3 디버그 매크로 ... 368
      2.4.4 콜 스택과 메모리 ... 372
      2.4.5 디버깅 툴을 이용한 디버깅 ... 381
      2.4.6 데이터 브레이크 포인트 ... 383
   05장 메뉴 생성 및 활용 ... 401
      2.5.1 메뉴의 생성 ... 403
      2.5.2 메뉴의 관리 ... 414
      2.5.3 단축키 추가 ... 422
      2.5.4 프로그램 코드를 이용한 메뉴 제어 ... 426
      2.5.5 팝업 메뉴 ... 429
   06장 툴바와 상태 표시줄 ... 433
      2.6.1 툴바 ... 435
      2.6.2 상태 표시줄 ... 444
   07장 윈도우 기본 컨트롤 ... 449
      2.7.1 스태틱 컨트롤 ... 451
      2.7.2 에디트 컨트롤 ... 473
      2.7.3 스핀 컨트롤 ... 483
      2.7.4 버튼 컨트롤 ... 489
      2.7.5 리스트 박스와 콤보 박스 ... 503
      2.7.6 프로그래스 컨트롤과 슬라이더 컨트롤 ... 519
   08장 윈도우 공통 컨트롤 ... 525
      2.8.1 리스트 컨트롤 ... 529
      2.8.2 트리 컨트롤 ... 546
      2.8.3 드래그 앤 드롭 기능 ... 561
      2.8.4 탭 컨트롤 ... 568
      2.8.5 애니메이션 컨트롤 ... 579
      2.8.6 캘린더 및 데이트 타임 컨트롤 ... 582
      2.8.7 IP 주소 컨트롤 ... 585
   09장 대화 상자 윈도우 ... 587
      2.9.1 대화 상자의 기본 ... 589
      2.9.2 프로퍼티 시트 ... 603
      2.9.3 메시지 박스 ... 615
      2.9.4 원도우 공통 대화상자 ... 621
   10장 도큐먼트 인터페이스 ... 629
      2.10.1 단일 문서 인터페이스 ... 632
      2.10.2 다중 문서 인터페이스 ... 652
   11장 GDI와 화면 출력 ... 659
      2.11.1 WM_PAINT 메시지 ... 665
      2.11.2 DC에 대하여 ... 671
      2.11.3 텍스트 출력과 폰트 ... 687
      2.11.4 그리기 모드와 매핑 모드 ... 695
      2.11.5 윈도우의 영역 ... 703
      2.11.6 또 다른 DC 객체들 ... 710
      2.11.7 OnDraw()와 OnPaint()의 차이 ... 716
   12장 비트맵 처리 ... 719
      2.12.1 투명 및 반투명 비트맵 ... 728
      2.12.2 ::LoadImage() 함수 ... 735
      2.12.3 비트맵으로 저장 ... 737
   13장 GDI와 프린터 출력 ... 747
      2.13.1 기본 프린트 ... 749
      2.13.2 이미지 프린트 ... 758
Part 3 고급 사용자 인터페이스
   01장 서브 클래싱을 이용한 확장 컨트롤 ... 769
      3.1.1 하이퍼텍스트 스태틱 컨트롤 ... 772
      3.1.2 배경이 있는 에디트 컨트롤 ... 786
      3.1.3 오너 드로우 기법을 이용한 버튼 컨트롤 ... 788
      3.1.4 텍스트를 출력하는 프로그래스 컨트롤 ... 797
      3.1.5 시스템 이미지를 활용한 리스트 컨트롤 ... 810
   02장 확장 바 윈도우 ... 811
      3.2.1 툴바의 확장 ... 813
      3.2.2 리바의 활용 ... 822
      3.2.3 컨트롤 바의 활용 ... 828
   03장 분할 윈도우 인터페이스 ... 839
      3.3.1 동적 분할 윈도우 ... 841
      3.3.2 정적 분할 윈도우 ... 845
      3.3.3 MDI를 닮은 SDI 윈도우 ... 853
   04장 쉘 및 기타 인터페이스 ... 861
      3.4.1 쉘 인터페이스 ... 863
      3.4.2 기타 인터페이스 ... 877
코드 01 화면 보호기 ... 885
코드 02 버튼 윈도우 다시 보기 ... 899
코드 03 버퍼 DC의 활용 ... 908
코드 04 맥 OS 흉내 내기 ... 917
코드 05 오피스 스타일 인터페이스 ... 929
코드 06 커스텀 컨트롤 ... 941
코드 07 2D 그래프 컨트롤 ... 961
코드 08 Syntax 컬러링 에디터 ... 991
닫기