《Visual C++程序员实用大全 精华版》PDF下载

  • 购买积分:23 如何计算积分?
  • 作  者:(美)Charles Wright等著;邓劲生,张晓明等译
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2005
  • ISBN:7508428919
  • 页数:863 页
图书介绍:本书深入浅出地讲述Visual C++各种编程诀窍,以高屋建瓴的眼光看待MFC编程的技巧和思想,详尽分析了具体实现中的技术内幕。本书以其翔实知识面的覆盖、大量实用的示例和作者自身丰富的编程经验,阐述了从C语言编程基础、C++面向对象语法、MFC类库、控件及高级应用、进程和线程到异常处理等各个方面的诀窍,是一本系统而全面的编程经典图书。本书既可作为计算机软件开发人员的技术参考书,也可作为初学者和大专院校师生的自学参考书。

5 理解Visual C++中的程序文件 1

557 从CEdit派生自定义类 51 1

目录 1

精华版序 1

译者序 1

第一章 编程基础 1

1 理解计算机是怎么运行程序的 1

2 运行一个已解释的程序 1

3 运行一个已编译的程序 1

4 C++在哪里 1

7 理解并创建头文件 2

6 创建源代码文件 2

11 空白在C和C++中的使用 3

第二章 结构和语法 3

8 理解计算机语言 3

9 理解计算机语言的句法 3

10 理解“标记” 3

13 对变量命名 4

12 理解变量 4

14 理解表达式 5

16 理解程序流 6

15 C/C++中的语句 6

169 使用预处理命令#define 1 7

17 深入程序流:理解goto语句 7

18 深入程序流:理解调用函数 7

19 理解程序的结构 8

20 理解C/C++中的函数 8

21 在函数中书写可重用代码 9

22 使用库函数 9

第三章 C编程语言 11

23 C/C++中的数据类型 11

24 定义自己的数据类型 12

25 理解运算符 12

26 赋值运算符 13

27 理解一元运算符 13

28 理解算术运算符 15

29 其他运算符 15

30 编译器是怎样计算表达式的 16

31 使用括号组合运算符 17

32 理解C/C++的关键字 17

33 编译程序引导语句 18

34 介绍结构和联合 19

35 介绍C++类 21

36 C和C++怎样处理结构和联合 22

第四章 C和C++概念 23

37 理解命名规则 23

38 声明和定义的区别 23

39 理解声明:对变量的声明 23

40 理解声明:在函数调用中声明一个变量 23

41 理解声明:函数的原型化 24

42 理解#define编译器指令:定义常数 24

43 理解#define编译器指令:定义宏 24

44 理解存储类变量:自动变量 25

45 理解存储类变量:寄存器变量 25

46 理解存储类变量:静态变量 26

47 理解存储类变量:类的静态变量 26

48 引入递归 27

49 理解循环:排序的问题 27

50 理解递归:数学问题 28

51 理解指针 28

52 理解指针:间接操作 28

53 理解数组 30

54 理解字符串作为char类型的数组 31

55 代码注释 31

第五章 文件——基本类型 33

56 VisualC++IDE使用的文件类型 33

57 理解文本文件和文档文件 34

58 创建并使用源文件 34

59 创建并使用头文件 35

60 使用保护:避免头文件多次被包含 35

61 理解makefile 36

62 理解可执行文件 36

第六章 理解字符 37

63 理解字符:ASCII码字符 37

64 理解字符:转换ASCII码或称扩展字符集 37

65  C/C++的转义序列:嵌入不可打印的字符 38

66  C/C++转义序列:使用反斜线 38

67  C/C++转义序列:使用百分号来对文本进行格式化 39

68 使用printf 39

69  C++I/O流:cout、cin和cerr 41

第七章 探索Visual C++环境 43

70 创建工程项目 43

71 Visual Studio菜单:File菜单 44

72 Visual Studio菜单:Eidt菜单 44

73 Visual Studio菜单:View菜单 45

74 Visual Studio菜单:Insert菜单 45

75 Visual Studio菜单:Proiect菜单 45

76 Visual Studio菜单:Build和Tools菜单 46

77 自定义Visual Studio菜单 46

78 向Tools菜单中添加命令 47

79 弹出式(或上下文式)菜单 48

80 使用全屏编辑器 48

81 使用调试窗口 48

82 完成程序编辑器 50

第八章 开始编程 52

83 从命令行运行编译器 52

84 创建源文件 52

85 main()函数 52

86 向程序中添加头文件 53

87 使用printf输出文件 53

88 “Hello,World”:一个简单的命令行C++程序 53

89 格式化输出族 54

90 格式化输入 54

91 三个标准文件:stdin、stdout和stderr 55

92 使用C++流函数cout、cin和cerr 55

93 重定向标准输出stdout到一个文件 55

94  main()的参数:argc和argv 56

95 使用if语句控制输出 56

96 打开文件 57

97 使用文件I/O函数 57

98 加入while循环 59

99 向程序中加入函数 60

100 使用for循环 62

101 编译命令行选项 62

102 加入第二个源文件 63

103 加入头文件 64

104 创建makefile 64

105 运行nmake.exe来编译程序 66

第九章 C++运算符 67

106 理解运算符类型 67

107 理解一元运算符:间接运算符(*) 67

108 理解一元运算符:地址运算符(&) 68

109 理解一元运算符:自增和自减运算符(++和--) 68

110 理解一元运算符:取反运算符和补码运算符 68

111 理解一元运算符:加法和减法运算符 69

112 理解算术运算符:倍数运算符(*、/和%) 69

113理解算术运算符:加运算符(+和-) 70

114理解关系运算符:等于运算符(==和!=) 70

115理解关系运算符:小于和大于运算符(<和>) 71

116理解关系运算符:小于等于和大于等于运算符(<=和>=) 71

117理解位运算符:位移运算符(<<和>>) 71

118理解位运算符:与运算符(&) 72

119 理解位运算符:或运算符(丨) 73

120 理解位运算符:异或运算符(^) 73

121 理解逻辑运算符:与运算符(&&) 74

122 理解逻辑运算符:或运算符(‖) 74

123 理解赋值运算符:等号运算符(=) 74

124 理解其他赋值运算符(+=,-=,*=,/=,%=,>>=,<<=,&=,^=,?=) 75

125 其他运算符:条件运算符(?…:) 75

126 其他运算符:逗号运算符 76

127 其他运算符:圆括号 77

128 其他运算符:引用运算符 78

129 注意&符号 79

130 理解C++如何给表达式赋值 79

第十章 编写条件语句 81

131 在C/C++中编写语句 81

132 流程控制介绍 81

133 使用if关键字 82

134 使用else关键字 82

135 执行一条单一语句 83

136 执行作为if语句目标的多条语句 83

137 组合使用if和else关键字 83

138 使用多个if条件控制 83

139 使用条件运算符 84

140 作用域介绍 85

141 理解条件语句中的作用域 86

142 条件语句的一些常见错误 86

第十一章 程序循环 87

143 循环介绍 87

144 用条件语句和goto语句构造循环 87

145 介绍while循环 87

146 使用continue和break语句 88

147 介绍do while循环 88

148 介绍for循环 89

149 理解循环内的作用域 90

第十二章 switch语句 92

150 理解switch语句 92

151 使用case和default语句 92

152 在switch语句内部声明变量 94

153 在case语句内部声明变量 94

第十三章 C++语言简介 95

154 理解C语言的结构 95

155 介绍C++的类 96

156 理解类与结构的相同点和不同点 98

157 在C和C++中声明变量 99

158 理解函数原型 99

第十四章 C/C++中的数组 100

159 理解数组 100

160 声明数组变量 100

161 使用字符串数组 101

162 使用对象数组 101

163 理解指向数组的指针 102

164 访问数组元素 103

165 理解数组运算 103

166 递增和递减数组变量 104

167 声明多维数组 104

第十五章 宏、常量和预处理命令:定义及使用常量 107

168 理解常量 107

170 注意#define语句中的分号 107

173 理解字符串常量 108

171 声明数值常量 108

172 声明无值常量 108

175 用变量定义常量 109

174 定义数字常量 109

178 理解const关键字 110

176 取消定义常量 110

177 理解sizeof操作符 110

179 理解何时使用const和#define 111

181 理解volatile关键字 112

180 用指针修改const常量的值 112

183 理解INCLUDE路径环境变量 114

第十六章 头文件 114

182 理解#include预处理命令 114

185 在头文件中使用卫式定义 115

184 理解#include<file.h>和#include file.h的区别 115

186 在大的工程中使用通用头文件 116

188 理解当头文件改变时发生什么 117

187 把头文件添加到makefile的关联列表中 117

192 使用#else和#elif预处理指令 119

第十七章 条件编译 119

189 理解#if预处理指令 119

190 理解#endif预处理指令 119

191 理解#ifdef预处理指令 119

193 在命令行中定义常量 120

196 理解宏替换 122

第十八章 定义和使用宏 122

194 理解C/C++中的宏 122

195 定义宏——又是#defne指令 122

198 理解编译器对宏的解释 123

197 用变量定义宏 123

200 示例:求一个数的平方 124

199 理解运行库中的宏 124

204 理解和使用字符串指针 126

第十九章 C/C++中的字符串 126

201 理解字符变量类型 126

202 理解C和C++语言存储字符串的方式 126

203 理解NUL字符(\0) 126

205 获取字符串的大小 127

207 定义字符型数组变量 128

第二十章 声明字符串 128

206 声明字符型变量 128

209 理解动态字符串:new操作 129

208 定义字符串数组 129

210 理解动态字符串:delete操作 130

212 理解字符串加载函数 131

第二十一章 字符串函数 131

211 理解字符串库函数 131

215 在字符串中查找一个字符 132

213 理解字符串信息函数 132

214 使用字符串函数复制指定数目的字符 132

217 查找字符串中的标记 133

216 在字符串中查找一个子串 133

219 扩展strtok函数以实现对空标记的解析 134

218 使用strtok()解析一个字符串 134

220 理解不区分大小写的函数 135

222 使用sizeof操作来判断字符串的有效长度 137

第二十二章 操作字符串 137

221 理解sizeof操作符 137

223 使用sizeof判断数组中字符串的数量 138

224 访问字符串中的单个字符 139

225 动态分配字符串 140

226 示例:反转一个字符串中的字符 141

228 理解C和C++中的函数声明 143

第二十三章 函数和变量 143

227 理解函数 143

231 声明和定义返回一个值的函数 144

229 理解函数定义 144

230 理解函数原型 144

232 声明和定义带参数的函数 145

233 理解函数的默认值 146

234 理解内联函数 147

237 C/C++中的函数调用 148

235 理解引用调用和值调用 148

236 引用调用和值调用的优缺点 148

238 理解函数的作用域 149

240 理解引用运算符(&) 150

239 在函数调用中使用指针 150

241 利用引用运算符修改变量 152

243 理解函数重载 153

242 函数重载简介 153

244 理解函数模板 155

246 理解函数指针 157

245 使用函数模板和重载函数的选择 157

247 获取重载函数的地址 159

248 理解引用函数 160

251 理解变量 161

249 理解函数和宏之间的区别 161

250 函数和宏使用上的选择 161

256 C++允许在函数体中说明变量 162

252 理解变量类型 162

253 更改变量类型 162

254 理解局部变量 162

255 理解全局变量 162

259 定义全局静态变量 163

257 理解存储类型 163

258 理解静态变量 163

262 理解变量的作用域 164

260 在程序中定义静态变量 164

261 创建自己的变量类型:typedef关键字 164

266 理解指向变量的指针 165

263 理解左值(lvalue) 165

264 理解NULL 165

265 理解void类型 165

267 声明和初始化指向变量的指针 166

268 理解间接操作:获得指针所指向的值 167

270 初始化指针数组 168

269 理解指针数组:指向指针的指针 168

271 理解转换:暂时修改变量类型 169

273 转换指针:危险的迹象 170

272 自动类型转换:混合int和char类型的变量 170

278 将结构理解成一种封装设备 171

第二十四章 开始C++:面向对象编程 171

274 面向对象编程 171

275 C++:C语言的进一步发展 171

276 OOP的三个原则 171

277 理解封装 171

280 理解多态性 172

279 理解C++中的类 172

282 使用类作为多态性的对象 173

281 理解多态性的示例:函数重载 173

286 将程序划分成对象 175

283 理解继承 175

284 从上至下的继承 175

285 使用对象 175

287 一个面向对象编程的示例 176

289 理解构造函数 182

第二十五章 C++类 182

288 理解类的元素 182

290 把参数传递给构造函数 183

292 理解析构函数 184

291 在类中使用多个构造函数 184

293 理解类中的访问关键字 185

295 保持数据成员为私有的 186

294 使用访问关键字实施封装 186

297 从基类派生一个新类 187

296 理解基类 187

298 理解多重继承 188

300 理解成员函数 189

299 使用基类 189

301 理解友元类 190

302 理解友元函数 191

305 理解嵌套数据类型 192

303 理解虚函数 192

304 理解抽象类 192

308 理解静态数据成员 194

306 理解静态成员 194

307 理解静态函数 194

310 理解作用域分辨 195

309 使用静态成员 195

313 重载操作符 196

311 理解回调函数 196

312 理解操作符重载 196

315 理解插入符 200

第二十六章 C++I/O 200

314 使用cin、cout和cerr 200

317 理解文件流 201

316 理解提取符 201

319 理解随机流函数 202

318 理解顺序流函数 202

321 理解I/O操纵器 203

320 理解width()、precision()和fill() 203

322 创建自己的插入符 204

323 创建自己的提取符 205

326 this指针 206

第二十七章 C++数组和指针 206

324 理解对象指针 206

325 理解类指针 206

329 使用delete操作符 207

327 使用malloc()和free() 207

328 使用new操作符 207

331 使用派生类指针 208

330 理解内存泄漏 208

332 理解对象指针运算 209

334 理解设备环境 210

第二十八章 图形设备接口 210

333 理解图形设备接口 210

335 设备环境和输出设备 211

338 理解屏幕坐标 212

336 使用Microsoft Foundation Class的设备环境 212

337 利用GDI绘图 212

340 理解打印机设备环境 213

339 理解客户坐标 213

343 GDI对象:画笔 214

341 GDI对象:字体 214

342 理解字体家族 214

344 GDI对象:刷子 217

345 GDI对象:位图 219

347 GDI对象:区域 220

346 GDI对象:调色板 220

350 理解设备坐标 222

348 理解映射 222

349 理解映射模式 222

353 理解图形和点 223

351 理解逻辑坐标 223

352 理解绘图模式 223

356 解释WM PAINT消息 224

354 理解路径 224

355 使用函数BeginPath()和EndPath() 224

358 绘制一系列点 225

357 使用函数SetPixel() 225

361 使用函数LineTo() 226

359 绘线 226

360 使用函数MoveToEx() 226

363 绘制弧线 227

362 用一系列直线绘制曲线 227

365 绘制封闭区域 228

364 绘制圆和椭圆 228

367 使用刷子 229

366 使用笔 229

371 理解字符宽度 230

368 填充一个封闭区域 230

369 了解Windows字体类型 230

370 理解像素尺寸 230

375 理解创建字体的CFont函数 231

372 理解字符属性 231

373 理解文本对齐方式 231

374 使用MFC的CFont类 231

377 使用DrawText()函数 232

376 理解文本输出函数 232

381 理解文本输出的背景模式 233

378 使用TextOut()和ExtTextOut()函数 233

379 使用TabbedTextOut 233

380 理解GrayString()函数 233

382 旋转文本 234

384 用CEdit和CStatic派生出来的类设置文本属性 239

383 设置文本和背景颜色 239

385 GDI示例:绘制一个字符镜像 243

389 MFC是如何在Visual Studio中实现的 254

第二十九章 Microsoft Foundation Class库 254

386 了解类库 254

387 使用类库来创建程序 254

388 引入Microsoft基础类库 254

390 调用Visual Studio向导创建一个基于MFC的程序 255

391 引入CObject 256

393 使用对象类 257

392 应用程序结构类 257

395 使用设备场景类 258

394 文件服务类 258

396 绘图对象类 262

398 数组、列表和映射类 263

397 控件、支持、数据库、菜单、命令行、同步和Socket类 263

399 Internet服务类 271

401 理解CWnd子孙类 273

400 窗口类:CWnd介绍 273

403 使用CFrameWnd类:单文档界面 274

402 框架窗口类 274

404 使用CFrameWnd类:多文档界面 275

405 使用CSplitterWnd类 277

406 控件栏类 279

407 属性表类 281

408 使用对话框类 282

409 理解通用对话框类 283

411 理解用户对话框类 284

410 理解属性页类 284

413 MFC视图类介绍 285

412 理解视图类 285

415 调用Visual Studio向导创建基于对话框的程序 286

414 调用Visul Studio向导创建视图类程序 286

417 使用CFile及其子孙类 295

416 文件服务类介绍 295

418 使用内存文件 296

421 理解CRecentFileList类 297

419 使用Socket文件 297

420 使用CStdioFile 297

422 理解控件类 298

423 非CObject派生类 299

425 理解CPoint 300

424 理解CString 300

426 理解Crect 301

429 理解同步(锁)类 302

427 理解CSize 302

428 理解支持类 302

430 使用CInternetConnection 305

431 使用CFtpConnection 307

432 理解CRuntimeClass 308

434 理解异常类 309

433 理解文档类 309

435 使用工具栏类 311

437 理解线程类 313

436 用MFC类实现打印和打印预览 313

438 理解命令操作器:CCmdUI类 314

439 理解CWaitCursor类 316

440 使用CImageList类 317

441 从MFC类库派生自定义类 320

444 创建工作区 322

第三十章 Developers Studio向导:创建工程 322

442 理解New菜单命令 322

443 创建文件 322

448 理解MFC AppWizard 324

445 创建其他文档 324

446 创建工程 324

447 理解小工程 324

452 理解数据库支持 325

449 创建MFC EXE工程 325

450 在工程中加入多文档支持 325

451 理解文档/视图支持 325

454 选择工程特色 326

453 在工程中加入复合文档支持、ActiveX和Automation 326

457 其他工程选项 327

455 理解工具栏选项 327

456 理解高级选项 327

460 为基于对话框的工程选择特色和支持选项 328

458 最后一步:为类命名和选择视图类 328

459 创建基于对话框的工程 328

463 创建Win32库 329

461 选择对话框选项 329

462 使用MFC创建DLL工程 329

465 理解文档对象 331

第三十一章 文档和视图 331

464 理解文档/视图结构 331

466 理解视图对象 332

467 理解文档/视图结构中的窗口框架 333

470 在工程中加入多文档类型 336

468 理解文档管理器 336

469 理解文档模板 336

473 重载框架消息处理函数 338

471 理解文档/视图中的Windows消息路径 338

472 理解默认消息 338

474 理解CArchive类 339

475 使用串行化函数 341

476 理解CView 342

478 在CView中显示文本 343

477 重载OnPaint消息处理函数 343

479 在CView中绘制图形对象 345

480 使用CScrollView类 355

483 理解插入和覆盖模式 360

481 使用CEditView类 360

482 在编辑视图中插入文本 360

484 在编辑视图中加入覆盖模式 361

485 使用编辑视图保存和恢复文本文件 364

486 使用CRichEditView类 368

488 理解复合文档支持 369

487 使用CRichEditView创建工程 369

490 理解服务器和最小服务器支持 370

489 理解OLE容器支持 370

491 添加菜单和工具栏项以支持多文本 371

493 理解CHARFORMAT和CHARFORMAT2结构 372

492 理解多文本编辑控件中的字符属性 372

494 改变字体 373

495 改变多文本编辑文档视图中的默认字体 374

497 为文本设置斜体、下划线和删除线 375

496 为文本设置粗体 375

498 设置字体和背景颜色 376

499 设置段落对齐 377

500 在格式栏中添加字体和字号框 379

501 在多文本编辑视图中添加用户和文件信息 387

502 使用串行化保存与恢复用户信息和文件信息 393

503 使用CListView类 394

505 创建图像列表 395

504 理解带CListView的CImagelist类 395

506 在列表控件中显示不同的样式 397

507 增加工具栏来改变显示样式 412

509 使用自主绘图属性产生整行选择 414

508 使用LVS OWNERDRAWFIXED样式 414

510 使用CTreeView类 420

511 组合CTreeView、CListView和CSplitterWnd创建一个资源管理器类型的应用程序 432

512 在资源管理器类型的应用程序右面板里使用其他代替视图 435

513 使用CFormView类 436

515 向程序中插入新的表单 437

514 创建基于表单的应用程序 437

516 在程序中使用多重视图 438

519 创建其他视图类:CCtrlView 441

517 向文档中添加视图 441

518 从文档中删除视图 441

520 使用CSplitterWnd实现多重视图 449

521 切分一个分割窗口 451

522 联合使用CSplitterWnd和文档视图 455

523 通过改写InitInstance函数避免创建初始化文档 462

524 理解永久保存数据机制 463

525 保存状态栏中的信息 467

526 更新与同一文档关联的多个视图 470

528 设置工程项目选项 475

第三十二章 调试技术 475

527 使用Visual Studio Debugger 475

529 使用调试窗口 478

530 设置和使用断点 480

531 单步执行程序 481

534 输出到Output窗口 482

532 调试命令行程序 482

533 使用Edit and Continue进行调试 482

536 建立远程调试器 483

535 理解远程调试 483

538 理解实时调试 484

537 在远程和本地调试间切换 484

539 有用的调试技术 485

540 使用CMemoryState类来检查内存泄漏 487

543 理解通用控件窗口类 488

第三十三章 Windows通用控件 488

541 理解Windows环境下的控件 488

542 理解通用控件 488

544 理解通用控件样式 489

546 通用控件使用的宏 490

545 通用控件的Windows通知消息 490

548 使用通用控件 492

547 通用控件库使用的结构 492

549 确定通用控件DLL的修订版本 493

550 Windows通用控件列表 494

551 从MFC控件类派生自定义类 496

553 从CStatic派生自定义类以获取功能 497

第三十四章 基本通用控件 497

552 理解静态文本控件 497

554 使用CStatic类 505

555 理解编辑框控件 510

556 使用CEdit类 511

558 添加编辑框控件的消息处理 520

559 理解按钮控件 522

560 使用CButton类 522

561 添加按钮控件的消息处理 523

562 使用命令更新启用或禁用按钮 531

563 理解复选框 531

564 使用下压按钮式复选框 532

565 理解单选按钮 532

566 将单选按钮分组 532

567 使用下压式单选按钮 532

568 在复选框和单选按钮中使用位图和图标 533

569 理解分组框控件 534

570 理解列表框控件 534

571 使用CListBox类 535

572 理解列表框消息 548

573 使用列表框字符串函数 549

574 使用列表框Dir()函数 549

575 理解组合框控件 550

576 使用CComboBox类 550

577 理解组合框样式 554

578 理解组合框消息 554

580 在视图中添加滚动条 555

581 在控件中添加滚动条 555

579 理解滚动条控件 555

582 理解SCROLLINFO结构 556

583 理解CScrollBar类 556

584 隐藏和显示滚动条 557

585 解释滚动条消息 558

586 使用滚动条作为输入控件 559

587 理解32位控件 565

588 理解图像列表控件 565

第三十五章 Windows 95及后继版本的通用控件 565

589 建立图像列表 566

590 在控件中添加图像列表 566

591 绘制图像列表中的图像 576

592 管理并操作图像列表 580

593 理解扩展组合框控件 583

594 使用CComboBoxEx类 583

597 理解CComboBoxEx操作 591

596 在CComboBoxEx中使用CImageList 591

598 理解Rich Edit控件 591

595 在扩展组合框中添加项目 591

599 理解CRichEditCtrl类 592

600 在Rich Edit控件中进行字符格式化 605

601 在Rich Edit控件中设置颜色 606

602 理解Rich Edit事件屏蔽 607

603 理解Rich Edit控件通知消息 607

604 理解进度条控件 608

605 使用CProgressCtl类 608

607 设置进度条值域和位置 616

608 理解进度条操作 616

606 理解进度条样式 616

609 理解滑动条控件 617

610 理解CSliderCtrl类 617

611 使用滑动条控件 628

612 解释滑动条控件消息 628

613 理解滑动条控件样式 630

614 设置Tick Mark 630

616 理解微调控件 631

617 理解CSpinButtonCtrl类 631

615 使用CSliderCtrl成员函数 631

618 理解微调按钮样式 639

619 使用CSpinButtonCtrl的成员函数 640

620 解释微调按钮控件消息 641

621 理解标头控件 643

622 使用CHeaderCtrl类 643

623 动态重排列标头域的使用 660

624 在标头中使热键追踪功能有效 660

625 在标头中使用图像列表 661

626 理解列表控件 661

627 使用CListCtrl类 662

628 理解列表控件样式 679

629 在报表视图模式中启用整行选取 680

630 为列表控件添加项目 681

631 使用带图像列表的列表控件 682

632 理解LPSTR_TEXTCALLBACK和I_IMAGECALLBACK样式 682

633 根据标头域的选择对列表控件排序 683

634 理解树状控件 683

635 理解CTreeCtrl类 684

636 为树状控件添加分支 691

637 理解树状控件样式 692

638 在树状控件中使用图像列表 693

639 展开和折叠分支 693

640 理解动画控件 694

641 使用CAnimateCtrl类 694

642 理解CAnimateCtrl类的成员函数 699

644 在工程中添加一个AVI动画文件 700

645 动画的播放、暂停和停止 700

643 创建动画文件 700

646 理解标签控件 701

647 理解CTabCtrl类 701

649 在标签控件中使用图像列表 719

650 在空白标签控件页面上添加控件 719

648 向标签控件中添加页面 719

652 理解状态栏控件 721

653 使用CStatusBarCtrl类 721

651 解释标签控件消息 721

654 在状态栏控件上设置指示 728

655 向状态栏中添加控件 729

656 理解工具栏控件 734

657 使用CToolBar类 734

658 在工具栏控件中使用图像列表 740

659 理解工具提示控件 741

660 使用CToolTipCtrl类 742

661 理解热键控件 754

662 使用CHotKeyCtrl类 754

663 设置和使用热键 760

664 理解日期和时间采集控件 760

665 使用CDateTimeCtrl类 761

666 理解日期和时间控件样式 765

667 理解日期和时间格式 766

668 理解日历控件 767

669 使用CMonthCalCtrl类 768

670 定制日历控件 776

671 理解日历控件属性 776

672 使用日历消息 777

673 MFC库中的其他控件类 777

674 理解位图按钮控件 777

675 理解IP地址控件 779

第三十六章 进程和线程 783

676 理解程序和进程 783

677 理解exec和spawn 783

678 处理不成功的exec 788

679 理解线程 789

680 使用MFC线程类 790

681 理解Windows如何调度线程 790

682 理解线程优先级 791

683 使用工人线程 791

684 使用用户接口线程 792

685 终止和挂起线程 792

686 从另一个线程终止线程 793

687 获取线程返回代码 793

689 在线程之间共享对象 794

690 同步线程 794

688 挂起和恢复线程 794

691 理解互斥量和信号量 795

692 理解关键段 800

693 理解事件 801

694 等待单个事件 801

695 等待多个事件 806

696 使用多线程C运行时库 810

697 理解ASSERT宏 811

698 理解异常 811

第三十七章 高级专题:异常处理 811

701 理解throw语句 812

700 理解try...catch块 812

702 捕获异常 812

699 抛出异常 812

703 使用多条catch语句 813

704 处理错误 815

705 使用异常通知失败的对象 816

706 理解TRY、CATCH和END_CATCH宏 816

707 理解CATCH_ALL和END_CATCH_ALL宏 817

708 理解MFC异常类 818

709 获取和解释异常类错误信息 818

710 删除异常对象 819

711 创建自己的异常类 819

712 嵌套try...catch块 820

713 理解进程间通信 822

714 理解句柄 822

第三十八章 进程间通信 822

715 理解进程控制例程 823

716 理解信号 823

717 在进程之间使用Windows消息 824

718 理解排队和非排队消息 824

719 理解管道 825

720 使用无名管道进行进程间通信 825

721 使用CreatePipe() 832

722 使用命名管道进行进程间通信 836

724 连接和断开管道 845

725 关闭管道 845

723 理解管道操作 845

726 使用_popen函数 846

727 理解事件作为IPC设备 850

728 创建命名事件 851

731 使用MFC信号量类 852

730 创建和删除信号量 852

732 锁定和解锁信号量 852

729 理解信号量作为IPC设备 852

733 理解映射文件 853

734 理解内存映射文件 854

735 理解共享内存 854