목차
시작하는 글 = XVII
제1부 서론
제1장 윈도우즈 - 그 진화와 변혁 = 3
전 세대들 : 도스와 윈도우즈 3.X = 4
뿌리 = 4
윈도우즈의 BIOS = 6
새로운 세대 : 윈도우즈 NT와 윈도우즈 95 = 8
운영 체제로서의 윈도우즈 = 9
16비트 대 32비트 = 18
윈도우즈 3.X, 윈도우즈 95, 그리고 윈도우즈 NT의 특징 = 23
혁명 : 손끝에서의 정보 = 24
출발을 위해서 필요한 것은 무엇인가? = 25
소프트웨어 요구 사항 = 26
시스템 요구 사항 = 26
다음 장에는 무엇이 있는가? = 27
제2장 윈도우즈의 개념들과 용어들 = 29
윈도우즈 윈도우 = 30
시각적인(visual) 인터페이스 구성 요소 = 31
경계선(Border) = 31
타이틀 바 = 32
제어 상자 또는 종료 상자 = 32
시스템 메뉴 = 33
상자의 최소화(Minimize Box) = 33
상자의 최대화(Maximize Box) = 33
종료 상자(Terminate Box) = 33
수직 스크롤 바 = 34
수평 스크롤 바 = 34
메뉴 바 = 34
클라이언트 영역 = 34
윈도우 클래스들 = 35
객체지향 프로그래밍 = 36
아이콘 = 37
커서 = 37
카렛 = 38
메시지 상자 = 38
대화 상자 = 39
폰트 = 39
비트맵 = 41
펜 = 42
브러시 = 42
메시지들 = 42
메시지 포맷 = 43
메시지 소스 = 45
메시지의 처리 = 45
메시지 루프 = 46
윈도우즈 리소스 = 47
윈도우즈 함수들 = 48
Window.H와 결합되어 있는 헤더 파일 = 49
윈도우즈 기수(notation)들 = 50
윈도우즈 애플리케이션들의 구성 요소 = 51
C/C^{++} 컴파일러 = 51
리소스 에디터 = 51
리소스 컴파일러 = 52
링커 = 52
다음 장에는 무엇이 있는가? = 53
제3장 윈도우즈 환경에 액세스하기 = 55
좌표 시스템 = 56
기본적인 사상(Mapping) 모드 = 56
디바이스 좌표 = 58
뷰포트 = 59
뷰포트와 윈도우 넓이 변경하기 = 60
사용자 정의 좌표들 = 60
초기의 윈도우 성격들을 선택하기 = 61
윈도우를 디스플레이하기 = 80
윈도우를 변화시키기 = 81
일반적으로 사용되는 제어와 대화 상자 = 82
스태틱(static) 제어 = 82
푸시 버튼(push button) 제어 = 82
라디오 버튼 제어 = 83
체크 상자 베어 = 83
리스트 상자 = 83
에디트 상자 = 84
스크롤 바 제어 = 84
가상(virtual) 키 = 85
시스템 타이머 = 89
타이머 틱(Tick : 똑딱거리는 소리)는 무엇이 만드는가? = 89
타이머를 효과적으로 사용하기 = 90
메모리 = 90
운영 체제에 의한 메모리의 할당 = 91
다음 장에는 무엇이 있는가? = 94
제2부 프로시듀어 지향 윈도우즈
제4장 간단한 윈도우즈 애플리케이션을 만들어 보자 = 97
최초의 윈도우즈 프로그램 = 97
Handle이라는 용어 = 99
윈도우즈 애플리케이션의 구성 요소 = 99
WinMain( ) 함수 = 100
윈도우 클래스 등록 = 101
최초의 윈도우즈를 만들어 보자 = 108
윈도우를 보여 주고 갱신하기 = 109
메시지 루프 만들기 = 110
요구되는 윈도우 함수 = 112
WM PAINT 메시지 = 119
WM_DESTROY 메시지 = 121
DefWindowProc( ) 함수 = 121
C/C^{++} 컴파일러 프로젝트 파일들 = 121
마이크소프트사의 프로젝트 파일들 = 121
볼랜드 프로젝트 파일들 = 125
실행 파일 만들기 = 128
윈도우즈 템플릿 재사용하기 = 128
또 다른 애플리케이션 = 131
윈도우즈 헤더 파일 = 135
리소스 파일 = 135
다음 장에는 무엇이 있는가? = 138
제5장 윈도우즈의 윈도우를 제어하기 = 139
스크롤 바 이해하기 = 139
스크롤 바 어휘(lexicon) = 140
시스템 타이머들을 가진 스크롤 바 사용하기 = 142
애플리케이션 파일(TICKTAPE.C) = 147
대부금 상환 애플리케이션 안에서 스크롤 바 사용하기 = 151
애플리케이션 파일(LOAN.CPP) = 157
새로운 스크롤 바 함수 = 163
애플리케이션 파일(SCROLL.C) = 170
다음 장에는 무엇이 있는가? = 174
제6장 아이콘, 커서, 비트맵, 그리고 멀티미디어 사운드 리소스를 추가하기 = 175
리소스 에디터를 사용하기 = 175
아이콘 추가하기 = 178
Custom 아이콘 만들기 = 179
윈도우즈 95에서 아이콘 사용하기 = 182
커서 추가하기 = 186
비트맵 추가하기 = 189
사운드 레코더 사용하기 = 193
다음 장에는 무엇이 있는가? = 196
제7장 메뉴와 키보드 액셀레이터 개발하기 = 197
메뉴의 기초 = 198
메뉴란 무엇인가? = 198
메뉴 리소스들과 리소스 컴파일러 = 198
자주 사용되는 메뉴 키워드와 옵션 = 199
키보드 액셀레이터 만들기 = 201
그래픽 모양의 크기 정하기 = 205
헤더 파일(MENU1.H) = 210
리소스 파일(MENU1.RC) = 210
애플리케이션 파일(MENU1.C) = 210
배경색 바꾸기 = 212
헤더 파일(MENU2.H) = 219
리소스 파일(MENU2.RC) = 219
애플리케이션 파일(MENU2.C) = 219
시스템 정보 결정하기 = 222
헤더 파일(MENU3.H) = 227
리소스 파일(MENU3.RC) = 227
애플리케이션 파일(MENU3.C) = 228
디렉토리 리스트 얻어 오기 = 231
헤더 파일(MENU4.H) = 237
리소스 파일(MENU4.RC) = 237
애플리케이션 파일(MENU4.C) = 238
다음 장에는 무엇이 있는가? = 243
제8장 대화 상자 리소스 사용하기 = 245
대화 상자란 무엇인가? = 249
마이크로소프트 대화 에디터 = 251
왜 대화 에디터를 사용하는가? = 251
컴파일러의 리소스 에디터 사용하기 = 252
간단한 About 대화 상자 디자인하기 = 258
다양한 입력의 요구를 충족시키기 위한 대화 상자들을 디자인하기 = 261
간단한 About 대화 상자 구현하기 = 262
대화 상자 안에 있는 그래픽 모양들을 선택하기 위해 라디오 버튼들을 사용하기 = 271
텍스트와 인티저를 입력하기 위해서 대화 상자를 사용하기 = 282
실제 숫자들을 입력하기 위해서 대화 상자를 사용하기 = 295
메시지 상자들을 디자인하기 = 306
일반적인 대화 상자들 = 311
다음 장에는 무엇이 있는가? = 312
제9장 폰트 리소스 작업하기 = 313
윈도우즈 폰트 용어 = 313
폰트 상수들 = 314
TEXTMETRIC 구조체 = 316
LOGFONTA 구조체 = 318
폰트 캐릭터 셀 = 319
기본적인 폰트 특징 = 320
폰트의 폭(Width) = 321
자동적으로 읽기와 장식 꼬리달기 = 323
OEM 대 ANSI 캐릭터 집합 = 323
논리적인 폰트 대 물리적인 폰트 = 323
벡터, 래스터, 그리고 트루타입 폰트 = 324
폰트 사상을 위한 구조 = 324
폰트 계열들의 넓은 선택 범위 = 326
디폴트 폰트 = 326
프린터 폰트 = 326
폰트들을 나타나게 해 주는 애플리케이션 = 327
CreateFont( ) 함수 = 327
CreateFontlndirect( ) 함수 = 329
FONT1 애플리케이션 = 329
FONT2 애플리케이션 = 335
FONT3 애플리케이션 = 339
FONT4 애플리케이션 = 344
FONT5 애플리케이션 = 349
FONT6 애플리케이션 = 362
다음 장에는 무엇이 있는가? = 371
제10장 그래픽 개념들과 그리고 원선들 = 373
그래픽 디바이스 인터페이스(GDI) = 373
GDI 환경 = 374
디폴트 픽셀 사상 모드 = 374
인스톨된 디바이스들의 정보 = 375
디바이스 컨텍스트 헨들(dhdc) 사용하기 = 380
사상 모드들 바꾸기 = 381
GDI 그리기 원선 사용하기 = 382
자주 사용되는 그래픽 원선들 = 382
GDI 툴과 기술 = 394
펜 = 394
브러시 = 397
배경색들 변화시키기 = 399
텍스트 컬러들을 바꾸기 = 400
GDI 툴 및 기술들을 사용하는 간단한 애플리케이션 = 401
다양한 모양들 그리기 = 403
다수의 뷰포트 만들기 = 408
간단한 바 차트 만들기 = 421
비트맵으로 된 이미지 나타나게 하기 = 429
BitBlt( )와 그리고 PigBlt 비트맵 함수들 = 430
비트맵으로 된 이미지들을 로드하고 그리기 = 438
윈도우즈 NT MaskNBlt( ) 함수에 있는 비트맵으로 된 이미지 사용하기 = 446
그래픽 이미지 회전시키기 = 452
사각형 회전시키기 = 452
실험할 준비가 되었는가? = 458
제11장 수학과 엔지니어링을 위해 기초적인 것들을 차트화하기 = 459
댐프드 사인(Damped Sine) 파동 = 460
DAMPWAVE.CPP 자세하게 살피기 = 463
푸리에 시리즈(Fourier Series) = 467
FOURIER.C 자세하게 살펴보기 = 474
대수 차트 = 478
LOGS.C 파일을 자세하게 살펴보기 = 488
다양한 차트 만들기 = 493
제12장 파이, 바, 그리고 라인 차트 디자인하기 = 495
파이 차트 = 496
PIE.C 애플리케이션 = 506
팔레트 메니저 = 513
논리적인 팔레트 오버헤드 = 514
바 차트 = 517
BAR.C 애플리케이션 = 531
라인 차트 = 536
LINE.C 애플리케이션 = 548
윈도우즈 NT 파이 차트 = 553
다양한 차트 만들기 = 557
제13장 특별한 애플리케이션 : 스케치, 툴바, 애니메이션 기술, 비디오 및 3-D 그래픽 = 559
스케치하기 : 멀티미디어 사운드를 가진 SKECH라는 이름의 Mouse-Sketch = 560
SKETCH 파일 = 560
SKETCH 애플리케이션 코드 = 568
툴바들 : 애플리케이션에 툴바와 툴팁 추가하기 = 571
이 애플리케이션을 위한 새로운 코드 = 583
애니메이션 : trainA, 단순한 애니메이션 애플리케이션 = 586
애니메이션 : trainB, 멀티미디어 사운드를 가진 비트맵으로 된 기차 = 591
애니메이션 : 윈도우즈 NT의 World 좌표와 뷰포트를 사용하는 STAR.C 애플리케이션을 가진 애니메이션 = 598
애니메이션 : 다수의 리소스를 사용하는 SAUCER.C 애플리케이션 = 602
비디오 : 간단한 비디오 플레리어 = 611
일반적인 파일 선택 대화 상자를 위한 구성 요소 = 618
AVI 파일들을 실행하기 위한 코드 = 621
OpenGL : 3DOPENGL.CPP 애풀리케이션과 OpenGL 프로그래밍의 세계 = 624
3DOpenGL 헤더 파일 = 626
Main( ) 함수 = 628
연습해 보기 = 635
제3부 객체지향 윈도우즈 애플리케이션
제14장 볼랜드 오브젝트 윈도우즈 라이브러리(OWL)의 소개 = 639
클래스 라이브러리의 장점 및 단점 = 640
볼랜드 오브젝트 윈도우즈 환경 = 641
오브젝트 윈도우즈 : 세 개의 객체지향 특징 = 642
추상화 = 642
캡슐화 = 642
메시지 응답 = 642
오브젝트 윈도우즈 객체 = 643
오브젝트 윈도우즈를 위한 프로그래밍 템플릿 SWPO.CPP = 646
SWPO 템플릿들 안에서 객체 사용하기 = 650
SWPO 템플릿 = 659
SWPO의 변형 - FONT.CPP 애플리케이션 = 659
폰트 애플리케이션 만들기 = 660
SWPO의 변형 - DAMP.CPP 애플리케이션 = 664
리소스란 무엇인가? = 667
제15장 볼랜드사의 오브젝트 윈도우즈와 리소스 사용하기 = 669
드래그 앤드 드롭 = 670
메뉴 리소스 추가하기 = 677
드래그 앤드 드롭 함수들을 구현하기 = 678
메뉴를 기억하는가? = 683
메뉴, 액셀레이터 키, 커서를 가진 GDI 그래픽 원선 = 684
DRAW.CPP 소스 파일 = 691
DRAW.CPP의 실행 = 694
커서, 메뉴, 대화 상자를 가진 프리젠테이션 그래픽 애플리케이션 = 696
대화 상자 리소스 = 708
파이 차트의 세부 사항 = 712
PIE.CPP 애플리케이션을 만들고 테스트하기 = 713
다음 장에는 무엇이 있는가? = 714
제16장 마이크로소프트 파운데이션 클래스(MFC) 라이브러리에 대한 소개 = 715
왜 MFC 라이브러리를 사용하나? = 716
디자인 고려 사항 = 717
핵심적인 특징 = 718
CObject로써 모든 것들이 시작된다 = 719
중요한 부모 클래스 = 722
쉬운 애플리케이션 = 724
EASY.CPP로 윈도우 만들기 = 724
EASY.CPP 애플리케이션 실행하기 = 730
완벽한 애플리케이션과 프로그래밍 템플릿 = 731
SWPMFC.H 헤더 파일 이해하기 = 733
SWPMFC.CPP 애플리케이션 파일 = 734
SWPMFC 실행하기 = 735
쉬운 유지·보수 = 736
제17장 리소스들과 함께 MFC 라이브러리 사용하기 = 737
메뉴와 대화 상자들을 갖는 과학적인 파동 = 738
MFCFOUR.H 헤더 파일 = 746
MFCFOUR.H 리소스 헤더, MFCFOUR.RC 리소스 스크립트 및 MFCFOUR.DLG 대화 스크립트 파일 = 748
MFCFOUR.CPP 애플리케이션 파일 = 750
MFCFOUR 실행하기 = 757
크로스 플랫폼 수행 능력 = 759
메뉴와 대화 상자들을 가진 바 차트 = 759
MFCBAR.H 헤더 파일 = 770
MFCBAR.H 리소스 헤더와 MFCBAR.RC 리소스 스크립트 파일 = 771
MFCBAR.CPP 애플리케이션 파일 = 773
MFCBAR 실행하기 = 780
다음 장에는 무엇이 있는가? = 782
제4부 진일보한 프로그래밍 요소
제18장 Win32 프로그래밍의 고려 사항 = 785
포팅 고려 사항 = 786
Win32와 동등한 것은 없다 = 787
쓰이지 않는 함수 = 787
이식할 수 있는 함수 = 787
멀티미디어 지원 함수 = 789
프로파일러의 지원 = 790
사소한 함수의 문제들 = 790
메시지의 문제점 = 792
데이터 값과 상수 = 793
매크로 = 793
포팅의 세부 사항 = 794
제안#1 - 윈도우 프로시듀어의 코드를 정확하게 하라 = 794
제안#2 - 사용하는 각각의 WORD를 조심스럽게 검사하라 = 795
제안#3 - 메시지를 체크하라 = 795
제안#4 - 좌표를 이용하는 함수들 = 796
제안#5 - 파일과 메모리 = 796
제안#6 - 콤보 상자 = 797
제안#7 - WinMain( ) 함수 바꾸기 = 797
제안#8 - 데이터 타입 = 797
주의 깊게 처리하기 = 798
제19장 다이나믹 링크 라이브러리(DLL) 만들기 = 799
다이나믹 링크 라이브러리(DLL) 만들기 = 800
DLL을 호출하는 애플리케이션 만들기 = 803
제20장 스크린 세이버 애플리케이션을 만들어 보자 = 809
마이크로소프트 비주얼 C^{++} 스크린 세이버 애플리케이션(32비트 버전) = 810
M32SAVE 애플리케이션 파일 = 813
마이크로소프트 C^{++} 스크린 세이버 애플리케이션(16비트 버전) = 822
M16SAVE 애플리케이션 파일 = 823
볼랜드 OWL 스크린 세이버 애플리케이션 = 829
BOWLSAVE.SCR 애플리케이션 실행하기 = 846
직접 실험해 보기 = 846
제21장 애플리케이션 엑스퍼트(Experts)와 위저드(Wizards) = 847
볼랜드 애플리케이션 엑스퍼트 = 849
AppExpert 사용하기 = 850
애플리케이션 만들기 = 859
AppExpert가 생성한 코드로 작업하기 = 861
BXPRTAPP 코드 최적화하기 = 886
마이크로소프트 애플리케이션 위저드 = 887
AppWizard 사용하기 = 887
애플리케이션 만들기 = 894
AppWizard가 생성한 코드로 작업하기 = 895
MWIZARD 코드 최적화하기 = 906
다음 장에는 무엇이 있는가? = 906
제22장 간단한 OLE 애플리케이션 만들기 = 907
OLE 특징과 명세서 = 908
객체 = 908
파일 = 909
데이터 = 909
내포하기 = 909
AppExpert OLE 컨테이너 애플리케이션 만들기 = 910
AppExpert 사용하기 = 910
볼랜드 컨테이너 애플리케이션으로 작업하기 = 920
AppWizard OLE 컨테이너 애플리케이션 만들기 = 923
AppWizard 사용하기 = 923
마이크로소프트 컨테이너 애플리케이션으로 작업하기 = 929
이제는 무엇을 하는가? = 931
색인 = 933