《VisualC++技术内幕》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)David J.Kruglinski著;王国印译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1994
  • ISBN:7302015759
  • 页数:499 页
图书介绍:

前言页 1

第一章 Microsoft Windows和Visual C++ 3

第一部分 WINDOWS、VISUAL C++和应用框架基础 3

1.1 Windows的编程模式 3

1.1.1 消息处理 3

1.1.2 Windows的图形设备接口(GDI) 4

1.1.3 基于资源的程序设计 4

1.1.4 内存管理 4

1.1.5 动态连接库(DLLs) 5

1.1.6 新的Windows特性--OLE和TrueType 5

1.1.7 Windows NT 5

1.2 Visual C++的组成 6

1.2.1 Visual工作平台和创建过程 6

1.2.2 App Studio资源编辑器 8

1.2.5 资源编译器 9

1.2.7 AppWizard 9

1.2.6 调试器 9

1.2.4 连接器 9

1.2.3 C/C++编译器 9

1.2.9 源程序浏览器 10

1.2.8 ClassWizard 10

1.2.10 联机帮助 11

1.2.11 Windows诊断工具 11

1.2.12 Microsoft基本类库2.0版 12

第二章 Microsoft基本类库应用框架 13

2.1 为什么要使用应用框架 13

2.2.1 应用框架和类库 15

2.1.1 学习曲线 15

2.2 什么是应用框架? 15

2.2.2 应用框架例子 16

2.3 类库消息映射 18

2.3.1 文档(document)和视(view) 19

致谢 20

前言 21

3.1 什么是视? 23

第三章 从“Hello,world!”入手来学习AppWizard 23

第二部分 类库的视类 23

3.3 “不做任何事情”的应用 24

3.2 单文档接口(SD?)和多文档接口(MDI) 24

3.5.3 往EX03A程序中加入绘制代码 27

3.5.2 Windows设备环境 27

3.4 CEx03aView视类 27

3.5 在视窗内绘图--Windows的图形设备接口 27

3.5.1 OnDraw成员函数 27

3.6.1 EX03A.RC的内容 29

3.6 提前了解一下App Studio,同时介绍一下资源 29

3.6.2 运行App Studio 30

3.7 Windows的Debug内核和DBWIN 31

3.9 加速创建过程 33

3.8.1 允许诊断宏 33

3.8 需要使用调试器吗? 33

3.10 创建新的MAK文件 38

4.1.1 消息映射 40

4.1 获取用户输入--消息映射函数 40

第四章 基本事件控制--全盘 ClassWizard 40

4.1.3 初始化视类数据成员 41

4.1.2 保存视的状态--类数据成员 41

4.2 EX04A例程序 42

4.1.5 Windows的用户区域 42

4.1.4 使矩形区域无效 42

4.3.1 同时使用AppWizard和ClassWizard 45

4.3 对EX04A使用ClassWizard 45

4.4 EX04B--通过鼠标来拖动圆 47

4.4.1 EX04B程序的构成元素 49

4.5.4 EX04C滚动例程序 52

4.5.3 滚动方式的选择 52

4.5 滚动视窗 52

4.5.1 窗口比人们所见到的要大 52

4.5.2 滚动条 52

4.5.5 EX04C程序中的元素 55

4.6.2 WM_QUERYENDSESSION消息 56

4.6.1 WM_CLOSE消息 56

4.6 其它Windows消息 56

4.6.4 WM_NCDESTROY消息 57

4.6.3 WM_DESTROY消息 57

5.1.1 显示设备环境类CClientDC和CWindowDC 58

5.1 设备环境类 58

第五章 图形设备接口(GDI) 58

5.1.3 设备环境的状态 59

5.1.2 构造和析构CDC对象 59

5.2 GDI对象 60

5.1.4 CPaintDC类 60

5.2.2 跟踪GDI对象 61

5.2.1 GDI对象的构造与析构 61

5.2.4 GDI选择的有效期 62

5.2.3 库存的GDI对象 62

5.2.5 持久的用于显示的设备环境--登记窗口类 63

5.3.1 标准视频图形矩阵(VGA)显示卡 64

5.3 Windows的颜色映射 64

5.4 映射方式 65

5.3.3 24位颜色显示卡 65

5.3.2 256色显示卡 65

5.4.1 MM_TEXT映射方式 66

5.4.3 “比例可变”的映射方式 67

5.4.2 “固定比例”的映射方式 67

5.4.4 坐标变换 69

5.5.2 选择字体 70

5.5.1 字体是GDI对象 70

5.5 字体 70

5.5.5 窗口中的点--逻辑Twips 71

5.5.4 显示字体 71

5.5.3 打印字体 71

5.5.6 计算字符高度 72

5.6 EX05A例程序 73

5.6.1 EX05A程序的组成元素 75

5.7 EX05B程序 76

5.8 EX05C例程序--再次使用CScroLLView 79

5.8.2 CScroLLView的SetScaleToFitSize状态 82

5.8.1 EX05C程序的一些元素 82

6.2 系统模式对话框 83

6.1 有模式和无模式对话框 83

第六章 有模式对话框 83

6.4 有模式对话框的程序设计 84

6.3 资源和控制 84

6.5 包罗万象的对话框--EX06A例程序 85

6.5.1 ClassWizard和对话框类 91

6.5.2 将对话框与视相连接 93

6.5.3 深入理解EX06A应用 95

6.6.1 获得OnOK退出控制 96

6.6 增强对话框函数 96

6.6.3 和滚动条控制挂上钩 98

6.6.2 OnCancel处理 98

6.7 确认控制:CWnd指针和控制ID 100

6.9 利用其它的控制特性 101

6.8 在对话框窗口内绘图 101

7.1.2 用户定义的消息 102

7.1.1 创建无模式对话框 102

第七章 无模式对话框和COMMDLG对话框类 102

7.1 无模式对话框 102

7.1.4 无模式对话框的例子--EX07A 103

7.1.3 对话框的归属 103

7.3 COMMDLG对话框 108

7.2 CFormView类--另外一个可供选择的无模式对话框 108

7.3.4 使用CFileDialog的一个例子--EX07B 109

7.3.3 从COMMDLG类进行派生 109

7.3.1 直接使用CFileDialog类 109

7.3.2 在程序运行的过程中加进对话框控制 109

8.2 C++的类和Visual Basic控制 114

8.1 Windows的标准控制和普通常规控制 114

第八章 Visual Basic控制 114

8.2.3 Visual Basic控制事件和Windows控制通知 115

8.2.2 属性(property)和数据成员 115

8.2.1 方法(method)和成员函数 115

8.4 CVBControl类 116

8.3 Visual Basic事件登记 116

8.5.1 Visual Basic GRID控制 117

8.5 EX08A例程序 117

8.5.2 创建EX08A例程序 118

8.6 利用其它的Visual Basic控制 125

8.8 编写和利用Visual Basic控制的有利和不利因素 126

8.7 Visual Basic的图象属性(picture property) 126

9.1 内存模式综述 127

第九章 全新的Windows内存管理 127

9.2.1 Intel段结构 128

9.2 16位Windows 128

9.2.3 内存模式--一个代码段还是多个代码段? 129

9.2.2 DGROUP段和多事件程序 129

9.2.4 近程函数调用 130

9.2.5 内存模式--一个数据段还是多个? 131

9.2.6 局部堆 132

9.2.7 全局堆 133

9.2.10 80386/80486的虚内存管理器 134

9.2.9 直接使用Windows的内存申请函数 134

9.2.8 程序的vtable在内存中的位置 134

9.3 检测内存疏漏(Leak) 135

10.2 使用GDI位图 136

10.1 GDI位图和与设备无关的位图(DIB) 136

第十章 位图 136

10.4 从资源中装入GDI位图 137

10.3 彩色位图和单色位图 137

10.6.1 EX10A例程序 138

10.6 对位进行伸缩处理 138

10.5 显示映射方式的作用 138

10.7.1 EX10B例程序 141

10.8 GDI位图的其它应用 145

11.1 位图按钮 147

11.1.1 EX11A例程序 147

第十一章 位图按钮、计时器和空状态处理 147

11.2 计时器的使用及控制的产生 151

11.2.1 计时器 151

11.1.2 对位图按钮的进一步讨论 151

11.2.2 产生控制 152

11.2.3 EX11B例程序 153

11.3 空状态处理 156

11.3.1 EX11C程序 156

12.1 主框架窗口和文档类 163

第十二章 菜单和键盘加速键 163

第三部分 文档--视结构 163

12.2 Windows的菜单 164

12.3 键盘加速键 165

12.4 命令处理 165

12.4.1 派生类中的命令消息控制 166

12.4.2 更新命令用户接口(UI)消息 166

12.5 应用框架的内含菜单项 167

12.4.3 对话框发送的命令 167

12.6 菜单项的允许/禁止 168

12.8 EX12A例程序 169

12.7 CEditView类 169

12.9 CMenu类 174

12.10 扩展命令处理 175

12.11 EX12B例程序 176

13.1 控制条和应用框架 181

13.2 工具条 181

第十三章 工具条和状态条 181

13.2.3 工具条和命令消息 182

13.2.2 按钮的状态 182

13.2.1 工具条位图 182

13.2.4 工具条更新命令UI消息 183

13.3 寻找主框架窗口 184

13.4 EX13A工具条例程序 185

13.5 状态条 189

13.5.1 状态条的定义 189

13.5.2 信息行 190

13.5.3 状态指示器 190

13.5.4 获得对状态条的控制 191

13.6 EX13B状态条例程序 191

14.1 为什么可重用基类难以设计 196

14.2 CPersistentFrame类 196

第十四章 可重用基类 196

14.4 Windwos的INI文件 197

14.3 CFrameWnd类和ActivateFrame成员函数 197

14.5 使用CString类 199

14.7 静态数据成员 201

14.8 缺省窗口矩形 201

14.6 极大窗口的位置 201

14.9 EX14A例程序 202

14.10 MDI应用中的持续框架 207

15.1 文档-视之间的相互作用函数 208

15.1.1 CView类的GetDocument函数 208

第十五章 文档与视的分离 208

15.1.2 CDocument类的UpdateAIIViews函数 209

15.1.3 CView类的OnUpdate函数 209

15.2 最简单的文档-视应用 210

15.1.4 CView的OnInitialUpdate函数 210

15.3 CFormView类 211

15.5 诊断信息转储 212

15.5.1 TRACE宏 212

15.4 CObject类 212

15.5.2 afxDump对象 213

15.5.3 信息转储环境及CObject类 213

15.5.4 未被删除对象的自动信息转储 214

15.6 EX15A例程序 214

15.7 更加高级的文档-视之间的相互作用 221

15.8 CDocument的Delete Contents函数 222

15.9 CObList集合类 223

15.9.1 对先入先出(FIFO)表使用CObList类 223

15.9.2 在CObList中进行迭代--POSITION变量 225

15.9.3 信息转储环境及集合 225

15.10 EX15B例程序 226

15.11 CEx15bApp 227

15.12 CMainFrame 228

15.12.1 CStudentDoc 228

15.12.6 DeleteContents 231

15.12.7 Dump 231

15.12.5 GetList 231

15.12.2 ClassWizard和CStudentDoc 231

15.12.3 数据成员 231

15.12.4 构造函数和析构函数 231

15.13 CStudentView 232

15.13.1 ClassWizard和CStudentView 238

15.13.5 工具条按钮命令消息控制函数 239

15.13.6 工具条按钮的更新命令UI消息控制函数 239

15.13.4 OnUpdate 239

15.13.2 数据成员 239

15.13.3 OnInitialUpdate 239

15.14.2 Edit菜单 240

15.14.3 IDD-STUDENT对话框 240

15.14.1 符号 240

15.13.7 protected型虚函数 240

15.14 资源要求 240

15.14.5 测试EX15B应用 241

15.14.4 工具条 241

15.15 留给读者的两个练习 242

16.1 什么是序列化? 243

16.1.1 磁盘文件和归档(Archives) 243

第十六章 读和写文档--单文档接口 243

16.1.3 编写序列化函数 244

16.1.2 使类可序列化 244

16.1.4 从归档中装入--内嵌对象和指针 245

16.1.5 使集合序列化 248

16.1.6 序列化函数和应用框架 248

16.2.2 文档模板类 249

16.2.1 Windows应用对象 249

16.2 SDI应用 249

16.2.3 文档模板资源 250

16.2.6 创建空文档--CWinApp的OnFileNew函数 252

16.2.7 文档类的OnNewDocument函数 252

16.2.5 SDI文档的多视 252

16.2.4 多文档类型 252

16.2.9 文档类的DeleteContents函数 253

16.2.10 将File Save和File Save As与序列化代码相连接 253

16.2.8 将File Open与序列化代码相连接--OnFile Open 253

16.3 EX16A--序列化SDI例程序 254

16.2.11 文件的IsModified标记 254

16.4 CStudent 255

16.5 CEx16aApp 256

16.6 CFrameWnd 260

16.7 CStudentDoc 262

16.7.4 CStudentView 263

16.7.5 AppWizard和EX16A 263

16.7.3 OnUpdateFileSave 263

16.7.1 Serialize 263

16.7.2 OnOpenDocument 263

16.7.6 测试EX16A应用 264

16.7.7 File Manager中的文档相关 264

17.1 MDI应用 266

第十七章 对文档的读和写--MDI 266

17.1.1 一个典型的类库MDI应用 267

17.1.4 MDI框架窗口和子窗口 269

17.1.3 MDI文档模板类 269

17.1.2 MDI应用对象 269

17.1.5 主框架和文档模板资源 270

17.1.7 为现存文档创建新的视 271

17.1.8 装入和存入文档 271

17.1.6 创建空文档--CWinApp类的OnFileNew函数 271

17.2 拖和放--程序和文档 272

17.2.1 程序登记 272

17.2.3 允许内嵌启动 273

17.2.4 程序启动参数 273

17.2.2 允许拖和放 273

17.4 CEx17aApp 274

17.3 EX17A例程序 274

17.2.5 响应DDE消息 274

17.5 CMainFrame 278

17.5.1 测试EX17A应用 281

17.6 EX17B例程序 281

18.1 Windows的打印 284

18.1.1 标准打印机对话框 284

第十八章 打印和打印预显 284

18.1.2 交互选择打印页码 285

18.1.3 显示页和打印页 285

18.3.1 打印机设备环境和CView的OnDraw函数 286

18.3.2 CView类的OnPrint函数 286

18.3 有关打印机的程序设计 286

18.2 打印预显 286

18.3.4 打印工作的开始和结束 287

18.3.3 准备设备环境--CView类的OnPrepareDC函数 287

18.4 EX18A例程序--一个所见既所得的打印程序 288

18.5 EX18B例程序--多页打印程序 293

18.6 留给读者的一些练习 297

19.1 切分窗口 298

19.2 多视选择 298

第十九章 切分窗口和多视 298

19.5 CMainFrame 299

19.4 EX19A--具有单个视类的SDI动态切分例子 299

19.3 动态和静态切分窗口 299

19.6 资源需求 300

19.9 CHexView 301

19.8 EX19B--双视类SDI静态切分例子 301

19.7 测试EX19A应用 301

19.10 CMainFrame 302

19.13 CEx19cApp 303

19.12 EX19C--多视类MDI例子 303

19.11 测试EX19B应用 303

19.14 CMainFrame 304

19.15 资源要求 306

19.16 测试EX19C应用 306

20.1.1 复文本格式(RTF) 307

20.1 Windows的WINHELP程序 307

第二十章 上下文相关帮助 307

20.1.2 编写简单的帮助文件 308

20.2 应用框架与WINHELP 312

20.2.1 调用WINHELP 312

20.2.3 帮助上下文别名 313

20.2.4 决定帮助上下文 313

20.2.2 使用搜索字符串 313

20.2.6 F1帮助 314

20.2.7 Shift-F1帮助 314

20.2.5 进入帮助的菜单 314

20.3 帮助例子--不需要任何编程 315

20.2.9 一般的帮助 315

20.2.8 消息框帮助--AfxMessageBox函数 315

20.4 MAKEHELP处理 317

20.5 帮助命令处理 318

20.5.1 F1处理过程 318

20.6 帮助命令处理例程序--EX20B 319

20.7 头文件要求 319

20.5.2 Shift-F1处理过程 319

20.9 CMDIHelpWnd 320

20.8 CEx20bAPP 320

20.10 CStringView 321

20.13 帮助文件要求 322

20.12 资源要求 322

20.11 CHexView 322

20.14 创建并测试该应用 323

第二十一章 一个实际的基于Windows的应用 324

21.1 MATPLAN应用 324

21.3 CMatplanApp 326

21.3.1 InitInstance 326

21.2 对MATPLAN应用的分析 326

21.5.2 CMatplanDoc 327

21.5.3 构造函数 327

21.5.1 OnCommandHelp 327

21.3.2 ExitInstance 327

21.4 CMainFrame 327

21.4.1 OnWindowNew1 327

21.4.2 OnWindowNew2 327

21.5 CMDISpecialChildWnd 327

21.5.7 OnUpdateEditClearAll 328

21.5.8 OnUpdateFileSave 328

21.5.6 OnEditClearAll 328

21.5.4 Serialize 328

21.5.5 DeleteContents 328

21.6.1 Draw 329

21.6.2 PrintLine 329

21.6 CPiece 329

21.6.3 Serialize 330

21.6.4 InsertInList,ExtractFromList 330

21.7.1 构造函数 331

21.7.2 DoDataExchange 331

21.7 CMatplanDialog 331

21.7.3 OnCancel 332

21.7.4 OnClickedCancel,OnClickedClear,OnClickedDelete,OnClickedInsert.OnClickedUpdate 332

21.8.1 OnPrepareDC 333

21.8.2 OnDraw 333

21.8 ClistView 333

21.7.5 OnClose 333

21.8.3 OnPrint 334

21.8.4 OnUpdate 334

21.8.7 OnCreate 335

21.8.8 OnPaint 335

21.8.6 OnBeginPrinting,OnEndPrinting 335

21.8.5 OnPreparePrinting 335

21.8.9 OnSize 336

21.8.10 OnListBoxDblClk 336

21.8.13 UpdatePlanDocument 337

21.9 CPlanView 337

21.8.12 StartNewList 337

21.8.11 OnCommandHelp,OnHelpHitTest 337

21.9.4 OnCreate 338

21.9.3 OnUpdate 338

21.9.2 OnPreparePrinting 338

21.9.1 OnDraw 338

21.9.5 OnPaint 339

21.9.7 OnMouseMove 340

21.9.6 OnLButtonDown 340

21.9.8 OnLButtonUp 341

21.9.12 ShowOverlap 342

21.9.13 SafeScrollTo 342

21.9.11 OnCommandHelp,OnHelpHitTest 342

21.9.9 OnLButtonDblClk 342

21.9.10 OnKeyDown 342

21.10.1 IDD_FORM对话框 343

21.10.2 IDR_MATTYPE菜单 343

21.10 MATPLAN资源文件 343

21.11 头文件 344

21.12 创建并测试MATPLAN应用 344

21.10.3 符号 344

第二十二章 不带文档和视的Microsoft基本类库2.0版程序 347

22.1 EX22A例子--一个SDI应用 347

第四部分 高级话题 347

22.3.2 OnPaint 350

22.3.3 OnClose 350

22.3.1 构造函数 350

22.2 CEx22aApp 350

22.2.1 InitInstance 350

22.3 CMainFrame 350

22.4 资源要求 351

22.5 EX22B例程序--一个基于对话框的应用 351

22.3.5 OnFile,OnHlp 351

22.3.4 OnQueryEndSession 351

22.8 资源要求 354

22.7.4 OnClickedCompute 354

22.7.3 DoDataExchange 354

22.6 CEx22bApp 354

22.6.1 数据成员 354

22.6.2 InitInstance 354

22.7 CEx22bDialog 354

22.7.1 数据成员 354

22.7.2 构造函数 354

22.9 EX22C例程序--一个MDI应用 355

22.11.4 OnFileNew 359

22.11.5 OnWindowCloseAll 359

22.11.3 OnQueryEndSession 359

22.10 CEx22cApp 359

22.10.1 InitInstance 359

22.11 CMainFrame 359

22.11.1 构造函数 359

22.11.2 OnClose 359

22.12.3 OnPaint 360

22.12.4 OnClose 360

22.12.2 构造函数 360

22.11.6 OnUpdateWindowCloseAll 360

22.11.7 CloseAllChildWindows 360

22.12 CChidFrame 360

22.12.1 数据成员 360

22.12.6 删除CMDIChildWnd对象 361

22.13 资源要求 361

22.12.5 OnFileClose 361

23.1 Windows的DIB格式 362

第二十三章 将位图存入文档--DIB和裁剪板 362

23.2 DIB、颜色以及调色板 363

23.3 通过裁剪板来传递图象 364

23.4 位图裁剪板规则 364

23.5 Microsoft基本类库文档中的DIB 365

23.6 CDib类 365

23.7 DIB访问函数 373

23.8 EX23A例程序 374

23.9.3 Serialize 375

23.9.4 OnEditClearAll 375

23.9.2 DeleteContents 375

23.9 CEx23aDoc 375

23.9.1 构造函数,析构函数 375

23.11.1 内存申请 376

23.11.2 大位图的序列化 376

23.11 CDib 376

23.10 CBitsDialog 376

23.12.2 OnCreate 377

23.12.1 构造函数,析构函数 377

23.12 CEx23aView 377

23.12.3 OnDraw 378

23.12.4 OnEditCopy 379

23.12.5 OnEditCopyTo 379

23.12.8 OnEditPasteFrom 380

23.12.9 OnPrint 380

23.12.7 OnEditPaste 380

23.12.6 OnEditCut 380

23.13 EX23A资源文件 381

23.13.1 IDD_BITS对话框资源 381

23.12.11 更新命令UI函数 381

23.12.10 OnUpdate 381

23.14 测试EX23A应用 382

23.15 位图操作 382

23.13.2 IDR_MAINFRAME菜单资源 382

第二十四章 Microsoft ODBC数据库管理 384

24.1 数据库管理和序列化 384

24.1.3 ODBC结构 385

24.1.2 ODBC标准 385

24.1.1 SQL 385

24.1.4 ODBC环境、连接和语句 386

24.1.5 ODBC API 387

24.1.6 数据库访问程序 389

24.2 ODBC、类库和面向对象程序设计 390

24.3 类库对话框条 390

24.4 应用的关闭 391

24.5 行一视类 391

24.5.2 将工作分摊手基类和派生类 400

24.5.3 CRowView的纯虚成员函数 400

24.5.1 滚动问题 400

24.5.4 CRowView的其它函数 401

24.6 EX24A例程序 401

24.7 CEx24aApp 402

24.8 CMainFrame 402

24.9.3 DeleteContents 403

24.9.4 SaveModified 403

24.9.2 OnNewDocument,OnOpenDocument,OnSaveDocument 403

24.9 CEx24aDoc 403

24.9.1 数据成员 403

24.9.8 数据成员 404

24.9.9 OnUpdate 404

24.9.7 CEx24aView 404

24.9.5 Serialize 404

24.9.6 OnFileConnect,OnFileDisconnect 404

24.9.10 OnDrawRow,GetRowWidthHeight,GetActiveRow,GetRowCount,ChangeSelectionNextRow,ChangeSelectionToRow 405

24.9.11 OnQueryExecute 405

24.9.13 OnMouseAcivate 407

24.10 EX24A资源文件 407

24.9.12 OnSetFocus 407

24.11 运行EX24A程序 408

24.12 对EX24A的进一步讨论 409

25.1.1 从用户的角度来看OLE 410

25.1 OLE基础 410

第二十五章 对象连接与嵌入(OLE) 410

25.1.2 客户和侍者 411

25.1.5 插入和粘贴 412

25.1.6 内嵌项和连接项 412

25.1.4 OLE项和C++对象 412

25.1.3 完备侍者和最小侍者 412

25.1.8 OLE动词 413

25.1.9 OLE侍者登记 413

25.1.7 手工连接和自动连接 413

25.1.11 Microsoft基本类库2.0版与OLE 415

25.1.10 客户--侍者数据交换格式 415

25.1.12 OLE1.0 版和OLE2.0版 416

25.2.2 客户文档结构 417

25.2.3 客户驱动 417

25.2.1 OLE客户类 417

25.2 OLE客户应用 417

25.2.4 客户响应 421

25.3 EX25A OLE客户例程序 422

25.6 CEx25aDoc 423

25.6.1 OnNewDocument 423

25.5 CMainFrame 423

25.4 CEx25aApp 423

25.7 CStudent 424

25.7.1 析构函数 424

25.6.3 Serialize 424

25.6.2 DeleteContents 424

25.8 CEx25aItem 425

25.8.1 OnChange 425

25.7.2 Serialize 425

25.9 CEx25aView 426

25.9.1 OnDraw 426

25.9.2 IsSelected 427

25.9.3 OnInsertObject 427

25.9.6 UpdateOLeControls 428

25.10 EX25A的资源要求 428

25.9.5 OnEditPaste,OnEditPasteLink,OnEditCopy,OnEditCut 428

25.9.4 OnClickedPrimary 428

25.11.1 OLE侍者类 429

25.11 OLE侍者应用 429

25.11.2 客户--侍者OLE对象之间的关系 430

25.11.3 启动侍者 431

25.11.4 侍者驱动 431

25.11.5 侍者响应 432

25.12 EX25B OLE侍者例程序 434

25.14 CMainWnd 435

25.14.1 构造函数 435

25.13 CEx25bApp 435

25.14.4 OnUpdateClient 436

25.14.5 OnExit 436

25.14.3 OnSize 436

25.14.2 OnCreate 436

25.17 CEx25bItem 437

25.17.1 构造函数 437

25.16 CEx25bServerDoc 437

25.14.6 OnClose 437

25.14.7 OnEditChange 437

25.15 CEx25bServer 437

25.17.3 OnShow 438

25.17.4 OnDraw 438

25.17.2 OnDoVerb 438

25.18 CReadDialog 439

25.18.1 OnInitDialog 439

25.17.6 Serialize 439

25.17.5 OnRead 439

25.18.3 OnDestroy 440

25.19 EX25B例程序对资源的要求 440

25.18.2 OnCtlColor 440

26.1 为什么使用DLL? 442

26.2 传统的DLL 442

第二十六章 动态连接库(DLLs) 442

26.3 类库DLL 443

26.3.1 类库DLL的使用仅限于MicrosoftC++编译器 443

26.3.2 作为DLL的类库类 444

26.3.3 在应用中使用MFC 200D.DLL 444

26.3.4 类库扩展DLL 445

26.3.5 类库DLL内存使用 445

26.3.6 扩展DLL需要的一些代码 446

26.3.7 搜索资源 446

26.3.8 内联构造函数 447

26.3.9 扩展DLL的引出 447

26.3.11 扩展DLL运行时刻类的确定 448

26.3.12 创建DLL 448

26.3.10 类静态数据成员 448

26.3.14 DLL的调试版和发行版 449

26.4 EX26A--编写自己的类库扩展DLL 449

26.3.13 创建引入库 449

26.4.1 EX26AD.DEF文件 450

26.4.2 EX26AD工程的Visual工作平台选项 451

26.5 EX26B--使用类库扩展DLL 452

26.6 CEx26bApp 452

26.4.3 创建引入库并拷贝DLL 452

26.7 CEx26bDoc 453

26.8 CEx26bView 453

26.10 创建并测试EX26B程序 454

26.9 CStudentDialog 454

26.10.1 资源访问 455

第五部分 附录 459

附录A C++语言之我见 459

附录B Microsoft基本类库中的消息映射函数 489

附录C 本书中用到的Microsoft Windows函数 493

附录D Visual C++,Windows NT版本 495

10.7 利用位图改进屏幕显示 1341