《深入浅出Windows MFC程序设计》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:侯俊杰著
  • 出 版 社:武汉:华中理工大学出版社
  • 出版年份:1998
  • ISBN:7560916414
  • 页数:619 页
图书介绍:

第0章 你一定要知道(导读) 1

0.1 这本书适合谁 1

0.2 你需要什么技术基础 2

0.3 你需要什么样的软硬件环境 2

0.4 让我们使用同一种语言 2

0.5 本书符号习惯 5

0.6 碟片内容与安装 5

0.7 范例程序说明 5

0.8 如何与作者联系 7

0.9 与前版本之差异 7

第一篇 勿在浮砂筑高台—本书技术前提 10

第1章 Win32程序基本概念 10

1.1 Win32程序开发流程 10

1.2 需要什么函数库(.LIB) 11

1.4 以信息为基础,以事件驱动之 12

1.3 需要什么头文件(.H) 12

1.5 一个具体而微的Win32程序 13

程序人口WinMain 19

窗口类的注册与窗口的诞生 20

信息循环 21

窗口的生命中枢—窗口函数 22

信息映射(Message Map)的雏形 22

对话框的运用 24

1.6 Windows程序的生与死 26

资源定义文件(.RC) 26

1.7 闲置时间的处理:OnIdle 27

1.8 进程与线程(Process and Thread) 28

核心对象 28

一个进程的诞生与死亡 29

产生子进程 29

一个线程的诞生与死亡 31

线程的优先权(Priority) 32

2.1 类及其成员—谈封装(encapsulation) 35

第2章 C++的重要性质 35

2.2 基类与派生类—谈继承(Inheriance) 36

2.3 this指针 39

2.4 虚函数与多态性(Polymorphism) 39

从薪水说起 43

晴天霹坜 45

三个结论 45

虚函数与一般化 47

2.5 类与对象大剖析 51

2.6 Object slicing与虚函数 55

2.7 静态成员(变量与函数) 58

2.8 C++程序的生与死:兼谈构造函数与析构函数 60

2.9 动态类型识别(RTTI) 61

2.10 动态生成( Dynamic Crearion) 64

2.11 异样处理(Exception Handling) 64

Template 68

Template Functions 69

Template Classes 70

Templates的编译与链接 72

第3章 MFC六大关键技术之仿真 74

3.1 MFC类的层次结构 75

Framel 范例程序 75

3.2 MFC程序的初始化过程 78

Frame2范例程序 81

3.3 自制RTTI(动态类型识别) 85

类别型录网与CRuntimeClass 86

DECL ARE_DYNAMIC/IMPLEMENT_DYNAMIC宏 87

Frame3范例程序 93

IsKindOf(类型识别) 101

Frame4范例程序 102

3.4 自制Dynamic Creation(动态生成) 103

DECL ARE_DYNCREATE/IMPLEMENT_DYNCREATE宏 104

Frame5范例程序 110

MFC4.0对动态生成的作法 119

3.5 自制Persistence(永久保存)机制 121

Serialize(数据读写) 121

Frame6范例程序 121

DECL ARE_SERLAL/IMPLEMENT_SERIAL宏 126

没有范例程序 129

3.6 自制Message Mapping( 信息映射) 129

Frame7范例程序 138

3.7 自制Message Routing(信息传递) 148

Frame8范例程序 157

第二篇 欲善工事先利其器—Visual C++v4.0开发工具 172

第4章 Visual C++软件集成开发环境 172

4.1 安装与组成 172

4.2 最重要的四种工具 178

4.3 内务部总管:Visual C++集成开发环境 179

关于Project 180

关于工具设定 181

Source Code Browser 182

Online Help 184

调试工具 186

· VC++调试器 187

· Exception Handling 190

4.4 程序编码生成器:App Wizard 191

东圈西点完成程序框架 192

Scribble Step0 202

4.5 威力强大的资源编辑器 221

Icon编辑器 223

Cursor编辑器 223

Bitmap 编辑器 224

Toolbar(工具栏)编辑器 224

VERSIONINFO资源编辑器 225

String Table(串资源)编辑器 226

Menu(菜单)编辑器 227

Accelerator(加速键)编辑器 228

Dialog(对话框)编辑器 229

5.2 候捷怎么说 232

5.1 什么是Application Framework? 232

第5章 纵观Application Framework 232

第三篇 浅出MFC程序设计 232

5.3 我怎么说 234

5.4 别人怎么说 236

5.5 为什么使用Application Framework 238

5.6 Microsoft Foundation Classes(MFC) 240

5.7 白头宫女话天宝:Visual C++与MFC 242

General Purpose classes 243

5.8 纵观MFC 243

Windows API classes 245

Application framework classes 246

High level abstractions 246

Afx全局函数 247

第6章 MFC程序设计导论—MFC程序的生与死 248

6.1 不二法门:熟记MFC类的层次结构 250

6.2 需要什么函数库(.LIB)? 251

6.3 需要什么头文件(.H)? 252

6.4 简化的MFC程序结构—以HelloMFC为例 253

6.5 Hello程序源代码 255

6.6 MFC程序的来龙去脉 259

我只借用两个类:CWinApp和CFrameWnd 259

CWinApp——取代WinMain的地位 260

CFrameWnd——取代Wndproc的地位 262

引爆器——Application object 263

隐晦不明的WinMain 265

Afx WinInit.——AFX内部初始化操作 268

CWinApp::InitApplication 270

CMyWinApp::InitInstance 271

CFrame Wnd::Create产生主窗口(并先注册窗口类) 272

窗口显示与更新 281

CWinApp::Run——程序生命的源泉 282

把信息与处理函数联结在一起:Message Map机制 284

来龙去脉总汇 286

6.7 Callback函数 287

6.8 Dialog与Control 290

6.9 通用对话框(Common Dialogs) 291

本章回顾 292

7.1 不二法门:熟记MFC 类的层次结构 293

7.2 MFC程序的UI新风貌 294

第7章 简单而完整:MFC程序框架 295

7.3 Document/View支撑你的应用程序 299

7.4 利用Visual C++工具完成Scribble step0 302

7.5 程序框架使用哪些MFC类? 302

7.6 Document Template 的意义 307

7.7 Scrbble的Document/View设计 312

7.8 主窗口的诞生 313

7.9 工具栏和状态栏的诞生 315

7.10 拖曳鼠标(Drag and Drop) 317

7.11 信息映射(Message Map) 318

7.12 标准菜单*File/Edit/View/Window/Help 319

7.13 对话框 321

7.14 改用CEdit View 321

8.1 为什么需要Document-View(形式上) 326

第四篇 深入MFC程序设计 326

第8章 Document-View深入探讨 326

Document 327

View 328

Document Frame(View Frame) 328

Document Template 329

CDocTemplate管理CDocument/CView/CFrame Wnd 329

8.2 Scribble Stepl的Document——数据结构设计 335

MFC Collection Classes的选用 336

· Template-Based Classes 337

· Template-Based Classes的使用方法 338

CScribbleDoc的修改 339

·SCRIBBLEDOC.H(阴影表示与Step0的差异) 340

·SCRIBBLEDOS.CPP(阴影表示与Step0的差异) 342

文件:一连串的线条 346

·CScribbleDoc的成员变量 346

·CScribbleDoc的成员函数 347

·CObList 347

线条与坐标点 349

·CStroke的成员变量 349

·CArray〈CPoint,CPoint〉 349

·CStroke的成员函数 349

8.3 Scribble Step 1的View:文件重绘与编辑 351

CScribble View的修改 352

·SCRIBBL EVIEW.H(阴影表示与Step0的差异) 352

·SCRIBBL EVIEW.CPP(阴影表示与Step0差异) 353

View的重绘动作:GetDocument 和OnDraw 357

·CScribble View的成员变量 357

·CScribble View 的成员函数 357

View与用户的会话(鼠标信息处理实例) 358

Class Wizard的帮助 359

WizardBar的帮助 361

8.4 Serialize:对象的文件读写 362

Serialization以外的文件读写动作 362

台面上的Serialize动作 364

台面下的Serialize写文件奥秘 368

台面下的Serialize读文件奥秘 374

8.5 DYNAMIC/DYNCREATE/SERLAL三组宏定义 381

8.6 Serializable的必要条件 385

8.7 CObject类 387

IsKind Of 387

IsSerializable 388

CObject::Serialize 388

8.8 CArchive 类 389

operator<<和operator>> 390

效率考虑 394

8.9 自定义SERIAL宏给抽象类使用 394

8.10 在CObList中加入CStroke以外的类 395

8.11 Document 与 View交流-为Scribble Step4做准备 399

第9章 信息映射与命令路由 402

9.1 到底要解决什么 402

9.2 信息分类 403

9.4 三个奇怪的宏,一张巨大的网 404

9.3 万流归宗Command Target(CCmd Target) 404

DECLARE_MESSAGE_MAP宏 405

直线上溯(一般Windows信息) 407

拐弯上溯(WM_COMMAND命令信息) 411

9.6 两万五千里长征——信息路由(Message Routing) 415

信息映射网的形成:BEGIN./ON./END.宏 417

9.5 米诺托斯(Minotauros)与西修斯(Theseus) 421

9.7 罗塞达碑石Rosetta stone 427

改变菜单 432

9.8 Scribble Step2:UI对象的变化 432

改变工具栏 435

利用Class Wizard 连接命令项识别码与命令处理函数 437

维护UI对象状态(UPDATE_COMMAND_UI) 440

本章回顾 444

第10章 MFC与对话框 445

10.1 对话框编辑器 446

10.2 利用Class Wizard连接对话框与其专属类 448

PENDLG.H 451

PENDLG.CPP 452

10.3 对话框的信息处理函数 454

MFC中各式各样的MAP 456

10.4 对话框数据交换与检查(DDX DDV) 457

MFC中各式各样的DDx_函数 461

10.5 如何使用对话框 462

本章回顾 464

第11章 View功能的加强与重绘效率的提高 465

11.1 同时修改多个Views-UpdateALL Views和OnUpdate 466

在View中定义一个hint 468

把hint传给OnUpdate 471

利用 hint提高重绘效率 473

11.2 可滚动的窗口:CScrollView 475

11.3 大窗口中的小窗口: Splitter 483

划分窗口的功能 483

划分窗口的程序概念 484

划分窗口的实作 485

本章回顾 488

第12章 打印与预览 489

12.1 概述 489

12.2 打印动作的原理 492

12.3 MFC预设的打印机制 497

12.4 Scribble打印机制的增强 509

打印机的页和文件的页 509

配置GDI绘图工具 510

尺寸与方向:关于映像模式(坐标系统) 511

分页 514

表头与页尾 516

动态计算页码 517

12.5 打印预览(Print Preview) 518

本章回顾 518

第13章 多重文件与多重视图 520

13.1 MDI和SDI 520

13.2 多重视图(Multiple Views) 521

13.3 窗口的动态划分 522

13.4 窗口的静态划分 524

CreateStatic和Create View 526

13.5 窗口的静态三叉划分 527

Graph范例程序 529

静态划分窗口的概念整理 539

13.6 同源子窗口 540

CMDIFrameWnd::On Window New 540

Text范例程序 542

非制式作法的缺点 548

新的Document类 550

13.7 多重文件 550

新的Document Template 552

新的UI系统 553

新文件的文件读写操作 555

第五篇 附录 558

附录A Scribble Step5完整源代码 558

附录B Visual C++范例程序一览 601

附录C OWL程序设计一览 605