목차
머리말 = 3
차례 = 5
제0장 책의 구성에 관하여 = 13
책의 구성 = 14
이 책 이후에는? = 16
제1장 윈도즈 프로그래밍에 관하여 = 19
1.1 윈도우즈란 무엇인가? = 22
1.1.1 윈도즈의 발전사 = 22
1.1.2 사용자 입장에서 본 윈도즈의 장점 = 25
1.1.3 응용 프로그램 개발자 입장에서의 장점 = 26
1.2 윈도즈 프로그래밍의 특성 = 27
1.2.1 출력창(window)의 구성 = 28
1.2.2 마우스(Mouse)의 이용 = 33
1.2.3 사건 중심형 프로그래밍 = 34
1.3 프로그래밍의 세부적인 차이점 = 35
1.3.1 WinMain() = 35
1.3.2 윈도우 함수(Windows Function) = 36
1.3.3 윈도즈와의 메시지 교환 = 36
1.3.4 사용될 윈도우(Window Classes)의 등록 = 36
1.3.5 윈도즈에서 사용되는 자료형(data type) = 37
1.3.6 .def 파일 = 39
1.3.7 API 함수 = 40
1.4 화면에 윈도우 출력하기 = 40
1.4.1 윈도우 종류(Window Class) 정의하기 = 44
1.4.2 등록된 윈도우 출력하기 = 48
1.4.3 메시지 루프 = 50
1.4.4 윈도우 함수(Window function) = 52
1.4.5 Definition 파일 = 52
1.5.6 소스의 컴파일 = 53
제2장 API를 이용한 윈도즈 프로그래밍 = 55
2.1 메시지 처리하기 = 56
2.1.1 메시지란 무엇인가? = 57
2.1.2 키입력에 의한 메시지 = 59
2.1.3 WM_PAINT 메시지의 처리 = 65
2.1.4 마우스에 의한 메시지 처리하기 = 70
2.1.5 WM_PAINT 메시지 발생시키기 = 75
2.1.6 Timer 메시지 발생시키기 = 80
2.2 메뉴 구현 = 84
2.2.1 메뉴 리소스와 리소스 컴파일러 = 86
2.2.2 메뉴 키워드(Menu Keyword) = 87
2.2.3 핫키 부여하기(Keyboard Accelerators) = 89
2.2.4 메뉴를 내장하고 사각형을 출력하는 프로그램 = 91
2.2.5 윈도우 배경색을 바꾸는 프로그램 = 98
2.2.6 시스템 정보 보여주기 = 109
2.2.7 디렉토리 항목 알아내기 = 118
2.2.8 메시지 박스(Message Box) 사용하기 = 129
2.3 대화상자(Dialog Box) = 138
2.3.1 대화상자의 기능 = 139
2.3.2 대화상자로 전달되는 메시지의 처리 = 141
2.3.3 대화상자 활성화시키기 = 142
2.3.4 대화상자 리소스 파일 만들기 = 142
2.3.5 간단한 About 대화상자 = 144
2.3.6 라디오 버튼(Radio Button) 사용하기 = 156
2.3.7 에디트 박스 사용하기 = 168
2.3.8 에디트 박스에서 정수 입력받기 = 179
2.3.9 에디트 박스에서 실수 입력받기 = 190
2.4 아이콘, 커서, 비트맵 그리고 멀티미디어 사운드 = 200
2.4.1 아이콘, 커서, 비트맵의 상 = 201
2.4.2 아이콘 사용하기 = 202
2.4.3 커서 이용하기 = 207
2.4.4 비트맵 이용하기 = 212
2.4.5 멀티미디어 사운드 이용하기 = 218
2.5 폰트 = 224
2.5.1 폰트와 관련된 상수들 = 225
2.5.2 TEXTMETRIC 구조체 = 228
2.5.3 LOGFONT 구조체 = 229
2.5.4 문자를 회전하여 출력하기 = 230
2.5.5 CreateFont()를 사용하여 문자열 회전시키기 = 233
2.5.6 폰트의 크기를 달리하여 출력하기 = 239
2.5.7 CreateFont()를 사용하여 트루타입 이외의 폰트 다루기 = 243
2.5.8 문자열을 45도 회전시켜 출력하기 = 247
2.5.9 폰트 선택용 대화상자 만들기 = 251
2.6 기초 그래픽 = 259
2.6.1 GDI(Graphics Device Interface) = 261
2.6.2 디바이스 컨텍스트(The Device Context : DC) = 262
2.6.3 Pixel Mapping Mode = 265
2.6.4 디바이스 컨텍스트 핸들(Device context handle) = 269
2.6.5 COLORREF 데이터 형(Data type) = 271
2.6.6 몇가지 기본적인 GDI 그래픽 함수들 = 272
2.6.7 펜(Pen)의 사용 방법 = 279
2.6.8 브러쉬(Brush)의 사용 방법 = 281
2.6.9 배경색의 지정 = 283
2.6.10 텍스트 칼라 = 284
2.6.11 드로잉 모드(Drawing Mode) 설정하기 = 285
2.6.12 기본적인 API 그래픽 함수를 이용한 프로그램 = 287
2.6.13 여러 개의 뷰포트(Wiewports) 사용하기 = 292
2.6.14 바 그래프(Bar Chart) 만들기 = 305
2.6.15 비트맵을 이용하여 화면 복구를 간단하게 = 313
2.7 그래픽 응용 : 가상 팔레트 다루기와 간단한 동영상 처리 = 324
2.7.1 팔레트 매니저(Palette Manager) = 325
2.7.2 가상 팔레트(logical palette) 사용하기 = 325
2.7.3 개선된 막대 그래프 = 329
2.7.4 동영상의 구현(animation) 원리 = 352
2.7.5 고전적인 동영상 구현법 = 353
2.7.6 비트맵을 이용한 동영상의 구현 = 360
2.7.7 뷰포트(Viewport)를 변화시켜 동영상 = 367
2.7.8 연속 동작을 나타내는 비트맵 이미지를 이용한 동영상 = 372
2.8 또 다른 콘트롤(control) 사용하기 = 385
2.8.1 체크 박스 사용하기 = 386
2.8.2 체크 박스의 토글 = 395
2.8.3 정적 콘트롤(static control)의 활용 = 402
2.8.4 리스트 박스(List Box)의 활용 = 410
2.8.5 스크롤 바(Scroll Bar) 콘트롤의 사용 = 420
2.9 파일(File) 다루기 = 430
2.9.1 윈도즈에서의 기본적인 파일 처리 방법 = 431
2.9.2 공통 대화상자를 이용한 파일 처리 = 431
GetOpenFileName()에 의한 공통 대화상자의 이용 = 431
OpenFile() 함수 사용하기 = 446
GetSaveFileName()에 의한 공통 대화상자의 이용 = 457
2.10 윈도즈 NT 프로그래밍에 관하여 = 471
2.10.1 윈도즈 NT에 관하여 = 474
윈도즈 NT의 작동 방식 = 475
서버와 클라이언트의 상호 작용 방식 = 476
윈도즈 NT에서 쓰레드(thread)란 무엇인가? = 478
32비트 윈도즈 NT에서 변경된 사항들 = 478
2.10.2 NT를 위한 첫 프로그램의 작성 = 481
리소스를 사용하는 경우의 NT 프로그래밍 = 487
윈도즈 NT에서 바뀐 것들 = 507
2.10.3 윈도즈 NT에서의 콘솔(Console) 구현 = 508
콘솔 만들기 = 508
콘솔에 타이틀 부여하기 = 509
입출력을 위한 핸들 얻기 = 510
콘솔에서 문자열 출력하기 = 510
콘솔에서 문자열 입력받기 = 511
커서 위치 조정하기 = 511
문자색과 배경색 지정하기 = 512
콘솔에서의 C/C++ 기본 입출력 스트림의 이용 = 513
마우스 이용하기 = 515
키보드 이벤트 처리하기 = 520
2.10.4 윈도즈 NT의 멀티 태스킹 구현 = 524
프로세스 기반의 멀티 태스킹 구현 = 524
쓰레드 기반의 멀티 태스킹 구현 = 535
쓰레드간의 실행 조정(Synchronization) = 553
세마포어를 이용한 실행 조정 = 554
제3장 클래스 라이브러리를 이용한 윈도즈 프로그래밍 = 565
3.1 C++에 관하여 = 566
3.2 OWL 이용하기 = 468
3.2.1 OWL의 계층 구조에 관하여 = 568
3.2.2 OWL을 사용하기 위한 준비 = 574
3.3.3 TApplication의 상속 = 577
3.2.4 윈도우 인스턴스 생성하기 = 579
3.2.5 메시지를 처리하는 함수들 = 583
3.2.6 윈도우 처리하기 = 588
3.2.7 리소스 다루기 = 593
아이콘과 커서 다루기 = 593
메뉴 다루기 = 597
메뉴에서 핫키(Accelerator keys) 다루기 = 604
스크롤바 다루기 = 605
커서 모양 바꾸기 = 611
마우스 위치 알아내기 = 615
3.2.8 GDI 다루기 = 619
픽셀 출력 = 619
펜, 브러쉬, 도형 다루기 = 625
대화상자 다루기 = 631
3.2.9 몇 가지 고급 OWL 예제들 = 638
스피드 바의 구현 = 639
상태 라인(Status bar)의 구현 = 661
MDI(Multiplc Document Interface)의 구현 = 703
MDI의 구조 = 704
프레임 윈도우와 문서 윈도우와의 차이점 = 704
MDI에서의 윈도우 종류 등록 및 생성 = 705
메시지 루프의 변경 = 707
프레임 윈도우 프로시져 = 707
문서 윈도우 프로시져 = 707
문서 윈도우의 생성 = 707
문서 윈도우의 종료 = 708
3.2.10 MFC를 OWL에서 사용하기 = 723
MFC를 OWL로 = 723
OBJCORE.CPP의 수정 = 726
AFX.INL의 수정 = 728
AFX.H의 수정 = 729
그 밖의 수정 = 729
MFC 라이브러리 재컴파일하기 = 730
MFC 예제 컴파일 = 737
3.3 MFC를 사용하자 = 737
3.3.1 MFC의 계층 구조 = 738
COject의 구조 = 741
MFC로 윈도우 출력 프로그램 작성하기 = 743
부록 1 윈도즈 가상 키코드 표 = 855
부록 2 리소스 파일에 사용되는 명령어 = 860
찾아보기 = 889