목차
제1장 → 무엇을 알고자 하는가?
이책의 CD = 2
다음은 무엇? = 3
C++ = 3
최초의 비주얼 C++ 윈도우즈 프로그램 작성하기 = 3
메뉴 만들기 = 3
다이얼로그 박스와 단일 문서 인터페이스(SDI) 응용 프로그램 = 5
Serialization(직렬화) = 6
마우스와 키보드 = 7
다중 문서 인터페이스(MDI) 응용 프로그램 = 8
메뉴, 툴바, 상태바 = 11
멀티미디어 = 11
타이머 = 13
애니메이션 = 13
Onldle() 함수 = 14
제2장 C++ DOS 프로그램
콘솔 응용 프로그램이란? = 16
왜 콘솔 응용 프로그램의 작성 방법을 배워야 하는가? = 16
간단한 DOS C++ 프로그램의 작성 = 16
Hello.CPP 프로그램의 코드 작성하기 = 18
Hellp.CPP 프로그램의 컴파일과 링크 = 20
Hello.EXE 프로그램의 실행 = 21
Target : 디버그용과 배포용 = 25
C++ 과 C = 26
C++ 클래스 = 27
클래스의 선언 = 28
소멸자 함수 = 30
Public과 Private 키워드 = 31
Circle 프로그램 = 32
Circle.CPP 프로그램 코드의 작성 = 32
Circle.CPP 프로그램의 코드 분석 = 34
Circle.CPP 프로그램의 컴파일과 링크 = 39
Circle2 프로그램 = 40
Circle2.cpp 프로그램 코드의 작성 = 40
Circle2.CPP 프로그램의 코드 분석 = 42
Circle2.CPP 프로그램의 컴파일, 링크, 실행 = 44
Circle3 프로그램 = 45
Circle3.cpp 프로그램 코드의 작성 = 49
Circle3.cpp 프로그램 코드 분석 = 49
Overloaded Functions = 51
Circle4.cpp 프로그램의 코드 분석 = 54
C와 비교하여 C++의 변수 선언하기 = 58
디폴트 파라미터 = 59
제3장 클래스 계층
RECT 프로그램 = 64
추가적으로 멤버함수가 필요한 경우는 어떻게 하는가? = 66
클래스 계층 = 66
RECT2.CPP 프로그램 코드 설명 = 69
멤버 함수 오버라이딩(overriding) = 73
객체에 포인터 사용하기 = 75
New와 Delete 연산자 = 76
이 장을 마치며 = 79
제4장 최초의 비주얼 C++ 윈도우즈 프로그램 작성하기
SAY 프로그램 = 82
SAY 프로그램의 프로젝트 생성하기 = 84
구성되기 전의 SAY 프로그램의 실행 = 92
SAY 프로그램 의 비주얼 프로그래밍 = 94
지금까지 완성된 내용 = 100
Say Hello 푸쉬버튼에 코드 입력하기 = 101
Exit 푸쉬버튼에 코드 입력하기 = 107
이 장을 마치며 = 108
제5장 메뉴 설계
Beep 프로그램 = 110
Beep 프로그램의 프로젝트 생성하기 = 111
다이얼로그 박스의 비주얼 설계 = 114
메뉴 바의 비주얼 설계 = 116
IDR_MENU1 메뉴와 클래스의 연결 = 121
프로그램의 주 윈도우에 IDR_MENU1 메뉴 연결하기 = 122
FIle 메뉴의 Exit 메뉴 아이템에 코드 입력하기 = 124
Beep 1 Time 메뉴에 코드 붙이기 = 125
Beep 2 Times와 Beep 3 Times 메뉴 아이템에 코드 붙이기 = 126
Beep 프로그램의 푸쉬버튼에 코드를 입력한다 = 128
제6장 편집 박스
MyEdit 프로그램 = 134
MyEdit 프로그램 Project 작성 = 135
MyEdit 프로그램의 비주얼 설계 = 138
MyEdit 프로그램의 다이얼로그 박스에 변수 연결하기 = 139
Test 1과 Clear 1 버튼의 코드 입력 = 141
MyEdit 프로그램에 다른 컨트롤 붙이기 = 143
아래 편집 박스에 컨트롤 변수 붙이기 = 144
IDC_EDIT2 편집 박스의 속성 수정 = 145
Test 2 버튼에 코드 연결하기 = 146
Clear 2 Button에 코드 연결하기 = 148
Copy 버튼에 코드 입력하기 = 150
Paste 버튼 구현하기 = 152
제7장 체크 박스
ChkBox 프로그램 = 156
ChkBox 프로그램의 프로젝트 생성하기 = 157
ChkBox 프로그램의 비주얼 설계 = 160
ChkBox 프로그램의 다이얼로그 박스에 변수 연결하기 = 161
다이얼로그 박스의 컨트롤 초기화하기 = 162
Exit 버튼의 BN_CLICKED 이벤트에 코드 연결하기 = 164
체크 박스의 Click 이벤트에 코드 입력하기 = 165
Hide와 Show 버튼에 코드 입력하기 = 166
Disable과 Enable 버튼의 코드 입력하기 = 172
제8장 스크롤 바
ScrollMe 프로그램 = 176
ScrollMe 프로그램의 프로젝트 생성하기 = 177
ScrollMe 프로그램의 비주얼 설계 = 180
ScrollMe 프로그램의 다이얼로그 박스에 변수 연결하기 = 182
다이얼로그 박스의 컨트롤 초기화하기 = 183
Exit 버튼의 BN_CLICKED 이벤트에 코드 연결하기 = 185
다이얼로그 박스의 WM_HSCROLL 이벤트에 코드 연결하기 = 186
이벤트에 연결된 스크롤 바 결정하기 = 189
다른 스크롤 바 메시지에 코드 연결하기 = 190
Thumb tab이 움직이는 도중에 위치 표시되기 = 196
Hide와 Show 버튼에 코드 입력하기 = 197
Disable과 Enable 버튼의 코드 입력하기 = 199
Min.Button에 코드 입력하기 = 201
Max.Button에 코드 입력하기 = 202
Reset Button에 코드 입력하기 = 203
편집 박스를 읽기 전용으로 만들기 = 204
제9장 리스트 박스, 콤보 박스
MyList 프로그램 = 206
MyList 프로그램의 프로젝트 생성하기 = 207
MyList 프로그램의 비주얼 설계 = 210
MyList 프로그램의 다이얼로그 박스에 변수 연결하기 = 211
리스트 박스 초기화하기 = 212
Exit 버튼의 BN_CLICKED 이벤트에 코드 연결하기 = 213
리스트 박스에서 아이템 읽기 = 214
리스트 박스에서 아이템 추가하기 = 217
CListBox 클래스의 다른 멤버 함수들 = 221
MyCombo 프로그램 = 225
MyCombo 프로그램의 프로젝트 생성하기 = 226
MyCombo 프로그램의 비주얼 설계 = 229
MyCombo 프로그램의 다이얼로그 박스에 변수 연결하기 = 231
콤보 박스 초기화하기 = 232
Exit 버튼의 BN_CLICKED 이벤트에 코드 연결하기 = 233
리스트 박스에서 아이템 읽기 = 235
왜 Copy와 Paste를 사용하지 않았는가? = 237
제10장 라디오 버튼
MyRadio 프로그램 = 240
MyRadio프로그램의 비주얼 설계 = 244
라디오 버튼 그룹 선언하기 = 247
MyRadio 프로그램 다이얼로그 박스에 변수 연결하기 = 249
라디오 버튼 초기화하기 = 251
Exit 버튼의 BN_CLICKED 이벤트에 코드 연결하기 = 252
라디오 버튼의 상태 결정 = 253
제11장 다이얼로그 박스
MyDialog 프로그램 = 258
MyDialog 프로그램의 프로젝트 생성하기 = 259
MyDialog 프로그램의 주 윈도우 비주얼 설계 = 262
Exit 버튼의 BN_CLICKED 이벤트에 코드 연결하기 = 264
사용자의 데이터를 받기 위한 다이얼로그 박스 생성 = 265
IDD_DIALOG 1 다이얼로그 박스의 클래스 선언하기 = 266
IDD_DIALOG 1 다이얼로그 박스의 편집 박스에 변수 붙이기 = 268
CMyDlg 클래스의 객체 생성 = 269
m_Dlg 1 다이얼로그 박스 표시하기 = 271
Display Data Button에 코드 연결하기 = 272
지금까지의 과정 복습 = 273
다른 다이알로그 박스 표시하기 = 274
IDD_DIALOG 2 다이얼로그 박스의 비주얼 설계 = 275
IDD_DIALOG 2 스크롤 바와 클래스 연결하기 = 276
IDD_DIALOG 2 다이얼로그 박스의 컨트롤에 변수 연결하기 = 276
CSpeedDlg 클래스의 m_Dlg 2 객체 생성하기 = 277
Enter Speed 버튼에 코드 연결하기 = 279
Display Speed Button에 코드 연결하기 = 279
m_Dlg 2 다이얼로그 박스 초기화하기 = 281
WM_HSCROLL 이벤트에 코드 입력하기 = 284
제12장 단일 문서 인터페이스 응용 프로그램
단일 문서 인터페이스와 다중 문서 인터페이스 비교 = 290
Test 프로그램 = 292
Test 프로그램의 프로젝트 생성 = 295
지금까지 작성한 Test 프로그램의 실행 = 302
Test 프로그램의 비주얼 설계 = 305
IDC_EDIT 1 편집 박스에 변수 연결하기 = 306
메뉴 바의 비주얼 설계 = 307
Test와 Clear 버튼에 코드 연결하기 = 310
이 장을 마치며‥‥ = 313
제13장 파일에 데이터 읽고 쓰기(Serialization 이용)
MEMO 프로그램 = 316
MEMO 프로그램의 프로젝트 생성 = 319
MEMO 프로그램의 비주얼 설계 = 324
IDD_MEMO_FORM 다이얼로그 박스안의 컨트롤에 변수 연결하기 = 325
Memo 편집 박스의 속성 변경 = 326
메뉴 바의 비주얼 설계 = 327
MEMO 프로그램의 문서(Document) 클래스 = 328
문서 클래스의 데이터 멤버 초기화하기 = 330
뷰 클래스의 데이터 멤버 초기화하기 = 331
문서 클래스의 데이터 멤버 갱신하기 = 333
파일에서 데이터 입출력하기 = 337
MEMO 프로그램 실행하기 = 340
MEMO 프로그램 개조 = 342
완성된 MEMO 프로그램의 실행 = 344
다른 형의 데이터 멤버 Serializing = 345
제14장 파일에 리스트 읽고 쓰기(Serialization 이용)
PHN 프로그램 = 348
PHN 프로그램의 프로젝트 생성하기 = 350
PHN 프로그램의 형식 설계 = 354
IDD_PHN_FORM 다이얼로그 박스의 컨트롤에 변수 붙이기 = 356
메뉴 비주얼 설계 = 356
PHN 프로그램 실행 = 357
Phone 클래스 선언하기 = 357
PHN 프로젝트에 PHONE.CPP 파일 더하기 = 359
PHN 프로그램의 문서 클래스 = 360
MFC CObList 클래스 = 360
문서 클래스의 데이터 멤버 초기화하기 = 362
m_PhoneList 리스트의 객체 지우기 = 364
PHN 프로그램의 View 클래스 = 367
뷰 클래스의 데이터 멤버 선언 = 367
문서 클래스의 데이터 멤버 갱신하기 = 371
Previous 버튼에 코드 연결하기 = 375
Next 버튼에 코드 연결하기 = 378
Add 버튼에 코드 연결하기 = 379
Delete 버튼에 코드 연결하기 = 381
PHN 프로그램 실행하기 = 383
리스트의 Serialization = 384
PHONE.H와 PHONE.CPP에 오버헤드 코드 입력하기 = 384
Serialize() 함수 호출하기 = 387
PHN 프로그램 실행 = 389
마지막 손질 = 389
제15장 Serialization 구성
CArchive 클래스 = 392
ARCH 프로그램 = 393
ARCH 프로그램의 프로젝트 생성 = 395
ARCH 프로그램의 비주얼 설계 = 399
Edit Box에 변수 연결하기 = 400
메뉴 바의 비주얼 설계 = 401
Save 버튼에 코드 연결하기 = 402
Load 버튼에 코드 연결하기 = 404
완성된 ARCH 프로그샘 실행하기 = 406
제16장 파일에 데이터 읽고 쓰기(CFile 이용)
Filet 프로그램 = 408
Filet 프로그램의 프로젝트 생성 = 410
Filet 프로그램의 비주얼 설계 = 414
Filet 프로그램의 메뉴 비주얼 설계 = 414
Filet 프로그램의 주 윈도우 비주얼 설계하기 = 416
Try It 다이얼로그 박스의 비주얼 설계 = 417
Try It 다이얼로그 박스에 클래스 연결하기 = 418
IDD_DIALOG 1 다이얼로그 박스의 컨트롤에 변수 연결하기 = 419
뷰 클래스의 데이터 멤버로 Try it 다이얼로그 박스 선언하기 = 419
FileIt 메뉴 아이템에 코드 연결하기 = 421
Save 버튼 구성하기 = 422
CFile MFC 클래스 = 424
MyFile.TXT 파일 읽기 = 425
SeekIt 프로그램 = 428
WAV 파일의 샘플링 rate = 428
SeekIt 프로그램의 실행 = 430
SeekIt 프로그램의 프로젝트 생성 = 432
SeekIt 프로그램 주 윈도우의 비주얼 설계 = 436
SeekIt 프로그램의 메뉴 비주얼 설계 = 436
About 다이얼로그 박스 수정하기 = 437
SeekIt 프로그램의 Sampling Rate 메뉴 아이템에 코드 연결 = 440
제17장 마우스
MyMouse 프로그램 = 446
MyMouse 프로그램의 프로젝트 만들기 = 448
프로그램 형식의 비주얼 설계 = 452
IDD_MYMOUSE_FORM 다이얼로그 박스의 컨트롤에 변수 연결하기 = 453
편집 박스의 속성 바꾸기 = 454
메뉴 바의 비주얼 설계 = 455
OnLButtonDown() 함수의 코드 작성하기 = 457
왼쪽 버튼을 놓았을 때 = 459
어디서 메시지를 받는가 = 461
OnLButtonDown() 함수의 파라미터 = 462
OnLButtonUp() 함수와 OnLButtonDown() 함수의 point 파라미터 = 468
WhereAmI 프로그램 = 469
WhereAml 프로그램의 프로젝트 만들기 = 471
프로그램 형식의 비주얼 설계 = 475
IDD_WHEREAMI_FORM 다이얼로그 박스의 컨트롤에 변수 연결하기 = 476
편집 박스의 속성 바꾸기 = 477
메뉴 바의 비주얼 설계 = 477
마우스 이벤트에 응답하기 = 478
제18장 키보드
MyKey 프로그램 = 482
MyKey 프로그램의 프로젝트 만들기 = 484
메뉴 바의 비주얼 설계 = 488
키보드 메시지 처리하기 = 489
OnKeyDown() 함수에 코드 연결하기 = 489
어떤 키가 눌러졌는지 알아내기 = 490
다른 가상키들 = 491
Ctrl 키의 입력을 알아내기 = 494
다른 키 조합의 입력 알아내기 = 496
WM_CHAR 메시지 = 499
제19장 다중 문서 인터페이스 응용 프로그램
다중 문서 인터페이스 응용 프로그램이란 무엇인가? = 502
PAD 프로그램 = 502
PAD 프로그램의 프로젝트 생성하기 = 512
프로그램의 비주얼 설계하기 = 517
IDD_PAD_FORM 다이얼로그 박스의 컨트롤에 변수 연결기 = 518
메뉴의 비주얼 설계 = 519
PAD 프로그램 실행하기 = 521
PAD 프로그램의 문서(Document) 클래스 = 522
문서(Document) 클래스의 데이터 멤버의 초기화 = 524
뷰 클래스의 데이터 멤버의 초기화 = 525
문서 클래스의 데이터 멤버 갱신하기 = 527
파일에서 데이터 읽고쓰기 = 529
문자열 편집기를 이용해서 PAD 프로그램 강화시키기 = 530
한 문서에 대한 다중 뷰 = 533
UpdateAllView() 함수와 OnUpdate() 함수 = 534
UpdateAllView() 함수의 호출 = 535
뷰 클래스의 OnUpdate() 멤버함수 = 537
스플릿터 윈도우 = 538
Window 메뉴에 Split 옵션 추가하기 = 540
PAD 프로그램의 최종판 실행시키기 = 541
제20장 메뉴
MyMenu 프로그램 = 544
MyMenu 프로그램의 프로젝트 생성하기 = 547
메뉴의 비주얼 설계 = 551
MyMenu 프로그램의 주 윈도우의 비주얼 설계 = 551
메뉴 아이템에 프로그램 코드 연결하기 = 552
메뉴에 단축키 추가하기 = 553
서브메뉴 만들기 = 557
메뉴 아이템에 체크표시하기 = 562
메뉴 아이템을 선택할 수 없게 하기 = 566
UPDATE_COMMAND-UI 메시지 이용하기 = 569
제21장 툴바, 상태바
MyTool 프로그램 = 576
MyTool 프로그램의 프로젝트 생성하기 = 579
메뉴의 겉모습 설계 = 584
MyTool 프로그램의 주 윈도우의 비주얼 설계 = 586
메뉴 아이템에 코드 붙이기 = 588
툴바 = 593
툴바의 아이콘 바꾸기 = 596
상태 바에 각 메뉴의 설명을 표시하기 = 599
사용자에게 좀 더 도움을 주려면‥‥ = 602
제22장 멀티미디어 : WAV 파일의 재생과 녹음
CTegMM.LIB 멀티미디어 라이브러리란 무엇인가? = 606
WAVE.EXE 프로그램 = 607
WAVE.EXE 프로그램의 프로젝트 생성하기 = 610
프로그램의 비주얼 설계 = 614
IDD_WAVE_FORM 다이얼로그 박스의 컨트롤에 변수 연결하기 = 616
메뉴의 비주얼 설계 = 616
Wave.MAK 프로젝트에 CTegMM.LIB 라이브러리 첨가하기 = 617
CTegMM 클래스의 객체 선언 = 617
WAV 파일 열기 = 619
Play 버튼에 코드 연결하기 = 625
MM_MCINOTIFY 이벤트에 코드 연결하기 = 627
Prev 버튼에 코드 연결하기 = 631
Next 버튼에 코드 연결하기 = 632
재생위치를 자동으로 처음으로 옮기기 = 634
Stop 버튼에 코드 연결하기 = 636
Pause 버튼에 코드 연결하기 = 638
Record 버튼에 코드 연결하기 = 639
녹음된 소리를 WAV 파일에 저장하기 = 641
PC 스피커를 통해서 재생하기 = 642
제23장 멀티미디어 : MIDI 파일의 재생
MIX 프로그램 = 644
MIX.EXE 프로그램의 프로젝트 생성하기 = 646
프로그램의 비주얼 설계 = 651
메뉴의 비주얼 설계 = 652
MIX.MAK 프로젝트에 CTegMM.LIB 라이브러리 첨가하기 = 653
두 개의 CTegMM 클래스 객체 선언 = 353
Play Bourbon6.MID 버튼에 코드 연결하기 = 655
Stop Bourbon6.MID 버튼에 코드 연결하기 = 659
Play 8Kenned3.WAV 버튼에 코드 연결하기 = 660
Stop 8Kenned3.WAV 버튼에 코드 연결하기 = 662
제24장 멀티미디어 : AVI 파일
비디오 파일의 재생 = 666
Video for Windows 소프트웨어 드라이버의 설치 = 667
매체 재생기로 비디오 파일 재생하기 = 668
AVI 프로그램 = 669
AVI 프로그램의 프로젝트 생성하기 = 673
프로그램의 비주얼 설계 = 677
IDD_AVI_FORM 다이얼로그 박스의 컨트롤에 변수 연결하기 = 679
메뉴의 비주얼 설계 = 679
AVI.MAK 프로젝트에 CTegMM.LIB 라이브러리 첨가하기 = 680
CTegMM 클래스의 객체 선언 = 680
AVI 파일 열기 = 682
Play 버튼에 코드 연결하기 = 687
MM_MCINOTIFY 이벤트에 코드 연결하기 = 689
Stop 버튼에 코드 연결하기 = 694
Step 버튼에 코드 연결하기 = 695
Back 버튼에 코드 연결하기 = 696
Silent 체크박스에 코드 연결하기 = 697
WM_PAINT 이벤트에 코드 연결하기 = 699
제25장 멀티미디어 : CD 오디오
매체 재생기로 음악 CD 재생하기 = 702
CD 프로그램 = 703
CD 프로그램의 프로젝트 생성하기 = 705
프로그램의 비주얼 설계 = 710
IDD_CD_FORM 다이얼로그 박스의 컨트롤에 변수 연결하기 = 712
메뉴의 비주얼 설계 = 712
CD.MAK 프로젝트에 CTegMM.LIB 라이브러리 첨가하기 = 712
CTegMM 클래스의 객체 선언 = 713
음악 CD 로드하기 = 715
Load 버튼에 코드 연결하기 = 716
Play 버튼에 코드 연결하기 = 718
Stop 버튼에 코드 연결하기 = 719
Prev 버튼에 코드 연결하기 = 720
Next 버튼에 코드 연결하기 = 721
Eject 버튼에 코드 연결하기 = 723
Track 편집박스의 내용을 갱신하기 = 724
제26장 타이머
MyTimer 프로그램 = 728
MyTimer 프로그램의 프로젝트 생성하기 = 729
메뉴의 비주얼 설계 = 734
MyTimer 프로그램의 주 윈도우의 비주얼 설계 = 734
MyTimer 프로그램에 타이머 설치하기 = 735
WM_TIMER 이벤트에 코드 연결하기 = 736
MyTimer 프로그램 실행하기 = 737
MyTimer 프로그램의 윈도우에 현재시간 표시하기 = 737
MyTimer 프로그램의 주 윈도우의 디폴트 성질 바꾸기 = 739
완성된 MyTimer 프로그램 실행하기 = 740
타이머 제거하기 = 741
제27장 애니메이션
BALL 프로그램 = 744
BALL 프로그램의 프로젝트 생성하기 = 747
프로그램의 주 윈도우의 비주얼 설계 = 751
IDD_BALL_FORM 다이얼로그 박스의 컨트롤에 변수 붙이기 = 752
메뉴의 비주얼 설계 = 753
BALL 프로그램에 비트맵 파일 첨가하기 = 753
애니메이션에 필요한 변수 선언하기 = 759
비트맵 로드하기 = 760
첫 번째 프레임 표시하기 = 763
비트맵 삭제하기 = 765
애니메이션 시작하기 = 766
애니메이션 보여주기 = 767
프로그램 윈도우의 디폴트 크기 설정 = 770
제28장 Onldle() 함수
Onldle() 함수란 무엇인가 = 774
ANNOUNCE 프로그램 = 774
ANNOUNCE 프로그램의 프로젝트 생성하기 = 775
프로그램의 주 윈도우의 비주얼 설계 = 780
메뉴의 비주얼 설계 = 780
Onldle() 함수에 코드 작성하기 = 781
ANNOUNCE 프로그램 실행하기 = 783
CTegMM 멀티미디어 클래스의 선언 = 784
CTegMM 클래스의 객체 생성 = 784
Announce.MAK 프로젝트에 CTegMM.LIB 라이브러리 첨가하기 = 786
다른 윈도우즈 프로그램의 상태 감시하기 = 787
ANNOUNCE 프로그램의 주 윈도우에 문자열 표시하기 = 789
ANNOUNCE 프로그램의 주 윈도우 디폴트 크기 바꾸기 = 790
찾아보기 = 793