목차
1. Visual C++과 윈도우즈 프로그래밍
Chapter 1 개요
들어가며 = 23
비주얼 C++ 6.0의 특징 및 추가 사항 = 26
IntelliSense 기능 = 26
List Members 기능 = 27
Type Info 기능 = 28
Parameter Info 기능 = 28
발전된 디버깅 환경(Edit and Continue 기능) = 29
컴파일러 성능 향상 = 29
향상된 도움말 = 30
새롭게 추가된 공통 컨트롤 = 30
새롭게 추가된 클래스 = 32
액티브 문서 컨테이너 지원 = 33
위저드97 프로퍼티 시트 지원 = 34
확장된 어플리케이션 위저드(AppWizard) = 34
데이터베베이스 기능 강화 = 36
비주얼 C++ 6.0 구성 요소 및 사용법 = 37
개발자 스튜디오(Developer Studio) = 37
메뉴바(MenuBar) = 38
Standard Bar = 40
워저드바(WizardBar) = 40
Build MiniBar = 41
워크스페이스(Workspace) 윈도우 = 41
어플리케이션 위저드(AppWizard) = 42
클래스위저드(ClassWizard) = 42
소스 브라우저(Source Browser) = 43
컴포넌트 캘러리(Component Gallery) = 46
소스 코드 컨트롤(Source Code Control) = 47
컴파일 및 링크 = 48
Chapter 2 MFC 첫걸음
MFC(Microsoft Foundation Class)란? = 49
어플리케이션 프레임워크(Application Framework) = 51
AppWizard를 이용한 MFC 프로그래밍 = 52
단계별 작성 절차 = 53
AppWizard에 의해 생성된 내용 = 66
AppWizard 단계별 옵션 적용 = 70
가상함수가 MFC에 적용되는 방식 = 75
MFC의 계층 구조 = 79
CObject 클래스에 대해 = 81
AppWizard가 생성한 코드 분석 = 82
어플리케이션 클래스(CTestApp) = 82
헤더 파일(Test.h) = 82
구현 파일(Test.cpp) = 85
클래스위저드 이용하기 = 95
메인 프레임 클래스(MainFrame) = 98
헤더 파일(MainFrm.h) = 98
구현 파일(MainFrm.cpp) = 101
도큐먼트/뷰 구조(Document/View Architecture)에 대해 = 105
뷰 클래스(CTestView) = 109
헤더 파일(TestView.h) = 109
구현 파일(TestView.cpp) = 110
도큐먼트 클래스(TestDoc) = 113
헤더 파일(TestDoc.h) = 113
구현 파일(TestDoc.cpp) = 113
Chapter 3 사용자 인터페이스
메뉴(Menu) = 115
메뉴 구성 = 115
메뉴 항목 속성 = 116
메뉴 항목 추가 = 118
내장 메뉴 사용 = 121
액셀레이터 키 설정 = 122
커서(Cursor) = 124
커서 모양 변경 = 125
표준 커서 = 131
애니메이션 커서 = 131
마우스(Mouse) 메시지 = 132
클라이언트 영역(사용자 영역)에 대한 마우스 메시지 = 134
넌클라이언트 영역(비사용자 영역)에 대한 마우스 메시지 = 135
수작업으로 메시지 맵핑 = 138
캐럿(Caret) = 141
키보드(Keyboard) 메시지 = 144
가상키(Virtualkey)코드 = 146
상태변경 키와 토글(Toggle)키 = 148
상태변경 키가 눌렸는지 여부 판단 = 148
토글 키가 On/off되었는지 여부 판단 = 149
문자 메시지(WM_CHAR) = 150
키보드로 마우스 제어하기 = 151
단계별 MFC프로그램 개발 과정 = 152
Chapter 4 다이얼로그와 컨트롤
다이얼로그 및 컨트롤 = 155
다이얼로그의 종류 = 155
모달 다이얼로그(Modal Dialog Box) = 155
모덜리스 다이얼로그(Modeless Dialog Box) = 156
공통 다이얼로그(Common Dialog Box) = 156
컨트롤(Control) = 160
다이얼로그와 컨트롤의 관계 = 165
컨트롤 유형별 속성 = 165
About다이얼로그 소스 분석 = 169
다이얼로그에 컨트롤 추가 = 171
멤버변수 추가 = 174
DDX/DDV의 이해 = 176
모달 다이얼로그 만들기 = 181
리스트박스와 콤보 박스에 대한 처리 = 190
라디오 버튼(옵션 버튼)에 대한 처리 = 196
수평 스크롤바에 대한 처리 = 198
Chapter 5 GDI
GUI개요 = 203
디바이스 컨텍스트(Device Context) = 203
GDI(Graphics Device lnterface) = 204
디바이스 컨텍스트 관련 클래스 = 204
GDI 오브젝트 = 207
GDI 오브젝트의 생성 = 208
GDI 오브젝트의 사용 = 209
시스템 내장(Stock) GDI 오브젝트 = 210
도형 그리기(예제 프로그램 Shape.exe) = 211
단계별 작성 절차 = 211
무효화 사각형(Invalid Rectangle) = 212
수정된 프로그램 = 214
화면을 꾸미기 위한 준비물 = 217
펜(Pen) 오브젝트 = 217
브러시(Brush) 오브젝트 = 218
폰트(Font) 오브젝트 = 218
화면 꾸미기 = 223
도형 출력 = 223
글자 출력 = 229
비트맵(Bitmap) 오브젝트 = 232
장치 종속 비트맵(Device Dependent Bitmap:DDB) = 233
장치 독립 비트맵(Device Independent Bitmap:DIB) = 233
팔레트(Palette) 오브젝트 = 234
GDI 비트맵 사용하기 = 234
커맨드 핸들러(Command Handler)와 업데이트 핸들러(Update Handler) = 239
영역(Region) 오브젝트 = 250
맵핑 모드(Mapping Mode) = 255
툴바(ToolBar, 도구 모음) = 263
상태바(StatusBar, 상태 표시줄) = 269
CRectTracker클래스 = 274
스크린 캡처(Screen Capture) = 277
다이얼로그 및 컨트롤 색상 설정 = 283
Chapter 6 프로퍼티 다이얼로그와 공통 컨트롤
애니메이션 컨트롤(CAnimateCtrl 클래스) = 291
프로그레스 컨트롤(CProgressCtrl 클래스) = 292
스핀 버튼 컨트롤(CSpinButtonCtrl 클래스) = 293
슬라이더 컨트롤(CSliderCtrl 클래스) = 298
슬라이더 컨트롤 속성 = 299
트리 컨트롤(CTreeCtrl 클래스) = 303
리스트 컨트롤(CListCtrl 클래스) = 304
선택된 항목 삭제 = 312
자신이 직접 만든 CMyListCtrl 클래스 = 313
위저드 다이얼로그 만들기 = 317
위저드97 프로퍼티 다이얼로그 = 319
WAVE 파일 출력하기 = 327
컨텍스트 메뉴(Context Menu) = 329
인터넷 익스플로러 공통 컨트롤 = 333
탭 컨트롤과 툴팁 컨트롤 = 339
탭 컨트롤(CTabCtrl) = 340
CMyListCtrl 사용 하기 = 342
툴팁 컨트롤(CToolTipCtrl) = 344
2. MFC 프로그래밍 올라서기
Chapter 7 분할 윈도우(Splitter Window)
분할 윈도우 = 349
분할 윈도우의 종류 = 349
동적 분할 윈도우(Dynamic splitter window) = 349
정적 분할 윈도우(Static splitter window) = 350
동적 분할 윈도우 만들기 = 350
정적 분할 윈도우 만들기 = 353
Chapter 8 모덜리스 다이얼로그 및 IPC
모덜리스 다이얼로그 = 367
모덜리스 다이얼로그 프로그램 = 368
사용자 정의 메시지 = 374
IPC(Inter Process Communication) = 378
메시지를 보내는 프로그램(IPC.exe) = 379
메시지를 받는 프로그램(Sub.exe) = 382
윈도우 메시지(Window Message) = 388
컨트롤 통보 메시지(Notification Message) = 389
사용자 정의 메시지(User defined Message) = 391
시스템 등록 메시지(System Registered Message) = 391
WM_COMMAND 메시지에 대한 핸들러 = 392
차일드 윈도우 통보 메시지에 대한 핸들러 = 393
윈도우 통보 메시지에 대한 핸들러 = 395
사용자 정의 메시지에 대한 핸들러 = 399
비트맵 버튼(CBitmapButton) = 400
타인이 만든 클래스 활용 = 402
Chapter 9 파일 입출력
일반적인 파일 입출력 = 410
직렬화(Serialization) = 415
MFC 어플리케이션의 직렬화 과정 = 415
Chapter 10 디버거 사용법
디버깅 관련 MFC 매크로와 함수 = 429
TRACE 매크로 = 429
ASSERT 매크로 = 430
ASSERT_VALID 매크로 = 431
VERIFY 매크로 = 433
예외 처리(Exception) = 433
Chapter 11 MFC 품 안으로(미니 웹 브라우저)
나만의 웹 브라우저 만들기 = 435
리바(CRebar) = 440
리바 스타일 = 441
REBARINFO 구조체 = 442
REBARBANDINFO 구조체 = 442
툴바 버튼의 이미지 전환 = 443
툴바 버튼에 텍스트 추가 = 448
드롭다운(DropDown) 버튼 = 449
리스트 형식의 툴바 = 451
메인 툴바의 버튼 처리 = 455
Link바의 버튼 처리 = 458
툴바에 애니메이션 컨트롤 추가 = 461
상태바에 프로그레스 컨트롤 추가 = 463
상태바에 이미지 추가 = 465
다이얼로그바(Dialog Bar) = 466
수작업으로 다이얼로그바를 구현하는 방법 = 466
컴포넌트 갤러리를 이용하는 방법 = 467
현재 작업 상태 표시 = 473
캡션바에 웹 사이트 제목 출력 = 475
상태바 첫번째 페인에 접속 상태 출력 = 475
상태바 두번째 페인에 작업 진행율 표시 = 476
툴바의 애니메이션 시작/종료 = 476
북마크(Bookmark) 기능 = 477
SDI에서 분할 윈도우로 전환 = 481
전체 화면(Full Screen) = 486
트레이 아이콘(Tray Icon) = 488
스플래숴 화면(Splash Screen) = 491
Chapter 12 다중뷰(Multi-View)
폼뷰(CMultiLookView) = 496
에디트 컨트롤(CEdit)과 에디트 뷰(CEditView) = 497
리치 에디트 컨트롤(CRichEditCtrl)과 리치 에디트 뷰(CRichEditView) = 497
폰트 뷰(CFontView) = 503
페인트 뷰(CPaintView) = 505
뷰 전환 = 511
Chapter 13 인쇄와 미리보기
윈도우 95의 프린터 출력 = 515
화면 출력과 프린터 출력의 차이 = 515
프린터 정보 = 516
MFC의 프린터 출력 = 517
MFC의 프린터 출력 과정 = 520
CView::OnPreparePrinting()함수 = 520
CView::OnBeginPrinting()함수 = 521
CDC::StartDoc() 함수 = 522
CView::OnPrepareDC()함수 = 522
CView::OnPrint()함수 = 524
CView::OnEndPrinting()함수 = 524
프린터 출력 루프 = 524
프린터로 도형 출력 하기 = 524
머리말과 꼬리말 붙이기 = 527
미리 보기를 내 입맛에 맞게 = 529
화면 캡쳐 후 인쇄 = 530
동화상 미리 보기 = 531
OnPrint()이 지원되지 않는 경우 = 532
인쇄 다이얼로그를 사용한 방법 = 533
인쇄 다이얼로그를 사용하지 않은 방법 = 535
Chapter 14 MDI(Multiple-Document Interface)
MDI 프로그램의 구조 = 539
SDI와 MDI 비교 = 541
MDI 도큐먼트 템플릿 클래스 = 541
MDI 프레임 윈도우 = 544
기존 도큐먼트 객체에 새로운 뷰 연결 = 544
도큐먼트의 로드와 저장 = 545
다수의 도큐먼트 템플릿 = 546
도큐먼트 템플릿 추가 = 546
부가 기능 추가 = 553
디폴트로 출력되는 MDI 차일드 윈도우 제거 = 553
MDI 차일드 윈도우 모두 닫기 = 553
MDI 클라이언트 영역에 로고(Logo) 출력 = 554
서로 다른 프레임을 사용하는 MDI 프로그램 = 557
Chapter 15 비트맵과 멀티미디어
비트맵(Bitmap) = 567
BMP파일의 구조(DIB포맷) = 568
비트맵 파일 헤더(BITMAPFILEHEADER) 구조체 = 569
비트맵 정보 헤더(BITMAPINFOHEADER) 구조체 = 570
컬러 테이블(Color Table) = 571
이미지 비트(Image Bit) = 572
DIB관련 함수 = 573
CDib 클래스 = 576
CDib 클래스 활용 = 582
비트맵 미리보기 다이얼로그 = 584
멀티미디어(MultiMedia) = 589
윈도우즈 95의 멀티미디어 서비스 = 589
MCI(Media Control Interface) = 590
오디오 서비스 = 590
비디오 서비스 = 591
MCI 서비스 = 591
동영상(AVI,MPEG,MOV)출력 = 596
Chapter 16 DLL(Dynamic Linking Library)
DLL의 이해 = 615
DLL은 무엇인가? = 615
LIB와 DLL의 차이 = 616
DLL을 사용하는 이유 = 616
DLL을 로드한 응용 프로그램의 메모리 맵 = 617
MFC에서 사용하는 DLL의 종류 = 618
DLL사용하기 = 626
DLL을 사용하는 방법 = 626
임포트 라이브러리 연결 방법(또는 암시적 연결) = 626
프로그램 실행시 연결 방법(또는 명시적 연결) = 627
임포트 라이브러리 연결 방법 = 628
프로그램 실행시 연결 방법 = 631
확장 DLL = 634
확장 DLL리소스의 검색 순서 = 634
확장 DLL만들기 = 635
확장 DLL사용하기 = 638
Chapter 17 프로세스와 스레드
프로세스(Process) = 644
스레드(Thread) = 645
CreateProcess()와 CreateThread()함수 = 645
프로세스 생성 = 645
프로세스 종료 = 651
스레드 생성 = 651
스레드 종료 = 654
MFC에서 사용하는 스레드 = 654
작업 스레드(Worker Thread) = 654
사용자 인터페이스 스레드(User Interface Thread) = 655
Onldle() = 655
작업 스레드(Worker Thread)사용법 = 655
사용자 인터페이스 스레드(이하 Ul 스레드) 사용법 = 659
스레드 동기화(Synchronization) = 663
메모리 맵 파일(Memory Maped File) = 664
메모리 맵 파일을 이용한 프로세스간 통신 = 666
송신 프로그램(Map.exe) = 667
수신 프로그램(Sub.exe) = 670
CreateProcess()함수와 동기화 추가 = 672
송신 프로그램(Map.exe) = 672
수신 프로그램(Sub.exe) = 674
3. Activex 프로그래밍
Chapter 18 ActiveX 컨트롤
ActiveX 활용 = 679
ActiveX 등장배경 = 679
COM에 대해 = 681
ActiveX의 주요 기술 = 683
자동화(Automation) = 683
자동화 서버 만들기 = 686
속성 추가 = 688
메서드 추가 = 692
자동화 컨트롤러 = 700
ActiveX 문서(ActiveX Document) = 704
ActiveX 문서 서버 만들기 = 704
ActiveX 문서 컨테이너 만들기 = 709
ActiveX 컨트롤(ActiveX Control) = 711
ActiveX 컨트롤 사용 = 712
ActiveX 컨트롤 제작 = 720