精华版序
译者序
第一章 编程基础
1 理解计算机是怎么运行程序的
2 运行一个已解释的程序
3 运行一个已编译的程序
4 C++在哪里
5 理解Visual c++中的程序文件
6 创建源代码文件
7 理解并创建头文件
第二章 结构和语法
8 理解计算机语言
9 理解计算机语言的句法
10 理解“标记”
11 空白在c和C++中的使用
12 理解变量
13 对变量命名
14 理解表达式
15 C/C++中的语句
16 理解程序流
17 深入程序流:理解goto语句
18 深入程序流:理解调用函数
19 理解程序的结构
20 理解C/C++中的函数
21 在函数中书写可重用代码
22 使用库函数
第三章 C编程语言
23 C/C++中的数据类型
24 定义自己的数据类型
25 理解运算符
26 赋值运算符
27 理解一元运算符
28 理解算术运算符
29 其他运算符
30 编译器是怎样计算表达式的
31 使用括号组合运算符
32 理解C/C++的关键字
33 编译程序引导语句
34 介绍结构和联合
35 介绍C++类
36 C和C++怎样处理结构和联合
第四章 C和C++概念
37 理解命名规则
38 声明和定义的区别
39 理解声明:对变量的声明
40 理解声明:在函数调用中声明一个变量
41 理解声明:函数的原型化
42 理解#define编译器指令:定义常数
43 理解#define编译器指令:定义宏
44 理解存储类变量:自动变量
45 理解存储类变量:寄存器变量
46 理解存储类变量:静态变量
47 理解存储类变量:类的静态变量
48 引入递归
49 理解循环:排序的问题
50 理解递归:数学问题
51 理解指针
52 理解指针:间接操作
53 理解数组
54 理解字符串作为char类型的数组
55 代码注释
第五章 文件——基本类型
56 Visual C++IDE使用的文件类型
57 理解文本文件和文档文件
58 创建并使用源文件
59 创建并使用头文件
60 使用保护:避免头文件多次被包含
61 理解makefile
62 理解可执行文件
第六章 理解字符
63 理解字符:ASCII码字符
64 理解字符:转换ASCII码或称扩展字符集
65 C/C++的转义序列:嵌入不可打印的字符
66 C/C++转义序列:使用反斜线
67 C/C++转义序列:使用百分号来对文本进行格式化
68 使用printf
69 C++I/O流:cout、cin和cerr
第七章 探索Visual c++环境
70 创建工程项目
71 Visual Studio菜单:File菜单
72 Visual Studio菜单:Eidt菜单
73 Visual Studio菜单:View菜单
74 Visual Studio菜单:Insert菜单
75 Visual Studio菜单:Proiect菜单
76 Visual Studio菜单:Build和Tools菜单
77 自定义Visual Studio菜单
78 向Tools菜单中添加命令
79 弹出式(或上下文式)菜单
80 使用全屏编辑器
81 使用调试窗口
82 完成程序编辑器
第八章 开始编程
83 从命令行运行编译器
84 创建源文件
85 main()函数
86 向程序中添加头文件
87 使用printf输出文件
88 “Hello,World”:一个简单的命令行C++程序
89 格式化输出族
90 格式化输入
91 三个标准文件:stdin、stdout和stderr
92 使用C++流函数cout、cin和celT
93 重定向标准输出stdout到一个文件
94 main()的参数:argc和argV
95 使用if语句控制输出
96 打开文件
97 使用文件I/O函数
98 加入while循环
99 向程序中加入函数
100 使用for循环
101 编译命令行选项
102 加入第二个源文件
103 加入头文件
104 创建makefile
105 运行nmake.exe来编译程序
第九章 C++运算符
106 理解运算符类型
107 理解一元运算符:间接运算符(*)
108 理解一元运算符:地址运算符(&)
109 理解一元运算符:自增和自减运算符(++和--)
110 理解一元运算符:取反运算符和补码运算符
111 理解一元运算符:加法和减法运算符
112 理解算术运算符:倍数运算符(*、/和%)
113 理解算术运算符:加运算符(+和-)
114 理解关系运算符:等于运算符(==和!=)
115 理解关系运算符:小于和大于运算符(<和>)
116 理解关系运算符:小于等于和大于等于运算符(<=和>=)
117 理解位运算符:位移运算符(<<和>>)
118 理解位运算符:与运算符(&)
119 理解位运算符:或运算符(f)
120 理解位运算符:异或运算符(n)
121 理解逻辑运算符:与运算符(&&)
122 理解逻辑运算符:或运算符(11)
123 理解赋值运算符:等号运算符(:)
124 理解其他赋值运算符(+=,一,}=,/==,%。,>>=,<<=,&:,^-,I:)
125 其他运算符:条件运算符(?:)
126 其他运算符:逗号运算符
127 其他运算符:圆括号
128 其他运算符:引用运算符
129 注意&符号
130 理解C++如何给表达式赋值
第十章 编写条件语句
131 在C/C++中编写语句
132 流程控制介绍
133 使用if关键字
134 使用else关键字
135 执行一条单一语句
136 执行作为if语句目标的多条语句
137 组合使用if和else关键字
138 使用多个if条件控制
139 使用条件运算符
140 作用域介绍
141 理解条件语句中的作用域
142 条件语句的一些常见错误
第十一章 程序循环
143 循环介绍
144 用条件语句和goto语句构造循环
145 介绍while循环
146 使用continue和break语句
147 介绍do while循环
148 介绍for循环
149 理解循环内的作用域
第十二章 switch语句
150 理解switch语句
151 使用case和default语句
152 在switch语句内部声明变量
153 在case语句内部声明变量
第十三章 C++语言简介
154 理解C语言的结构
155 介绍C++的类
156 理解类与结构的相同点和不同点
157 在C和C++中声明变量
158 理解函数原型
第十四章 C/C++中的数组
159 理解数组
160 声明数组变量
161 使用字符串数组
162 使用对象数组
163 理解指向数组的指针
164 访问数组元素
165 理解数组运算
166 递增和递减数组变量
167 声明多维数组
第十五章 宏、常量和预处理命令:定义及使用常量
168 理解常量
169 使用预处理命令#define
170 注意#define语句中的分号
171 声明数值常量
172 声明无值常量
173 理解字符串常量
174 定义数字常量
175 用变量定义常量
176 取消定义常量
177 理解sizeof操作符
178 理解const关键字
179 理解何时使用const和#define
180 用指针修改const常量的值
181 理解volatile关键字
第十六章 头文件
182 理解#include预处理命令
183 理解INCLUDE路径环境变量
184 理解#include<file.h>和#include file.h的区别
185 在头文件中使用卫式定义
186 在大的工程中使用通用头文件
187 把头文件添加到makefile的关联列表中
188 理解当头文件改变时发生什么
第十七章 条件编译
189 理解#if预处理指令
190 理解#endif预处理指令
191 理解#ifdef预处理指令
192 使用#else和#elif预处理指令
193 在命令行中定义常量
第十八章 定义和使用宏
194 理解C/C++中的宏
195 定义宏——又是#define指令
196 理解宏替换
197 用变量定义宏
198 理解编译器对宏的解释
199 理解运行库中的宏
200 示例:求一个数的平方
第十九章 C/C++中的字符串
201 理解字符变量类型
202 理解C和C++语言存储字符串的方式
203 理解NUL字符(\0)
204 理解和使用字符串指针
205 获取字符串的大小
第二十章 声明字符串
206 声明字符型变量
207 定义字符型数组变量
208 定义字符串数组
209 理解动态字符串:new操作
210 理解动态字符串:delete操作
第二十一章 字符串函数
211 理解字符串库函数
212 理解字符串加载函数
213 理解字符串信息函数
214 使用字符串函数复制指定数目的字符
215 在字符串中查找一个字符
216 在字符串中查找一个子串
217 查找字符串中的标记
218 使用strtokf)解析一个字符串
219 扩展strtok函数以实现对空标记的解析
220 理解不区分大小写的函数
第二十二章 操作字符串
221 理解sizeof操作符
222 使用sizeof操作来判断字符串的有效长度
223 使用sizeof判断数组中字符串的数量
224 访问字符串中的单个字符
225 动态分配字符串
226 示例:反转一个字符串中的字符
第二十三章 函数和变量
227 理解函数
228 理解c和c++中的函数声明
229 理解函数定义
230 理解函数原型
231 声明和定义返回一个值的函数
232 声明和定义带参数的函数
233 理解函数的默认值
234 理解内联函数
235 理解引用调用和值调用
236 引用调用和值调用的优缺点
237 C/C++中的函数调用
238 理解函数的作用域
239 在函数调用中使用指针
240 理解引用运算符(&)
241 利用引用运算符修改变量
242 函数重载简介
243 理解函数重载
244 理解函数模板
245 使用函数模板和重载函数的选择
246 理解函数指针
247 获取重载函数的地址
248 理解引用函数
249 理解函数和宏之间的区别
250 函数和宏使用上的选择
251 理解变量
252 理解变量类型
253 更改变量类型
254 理解局部变量
255 理解全局变量
256 C++允许在函数体中说明变量
257 理解存储类型
258 理解静态变量
259 定义全局静态变量
260 在程序中定义静态变量
261 创建自己的变量类型:typedef关键字
262 理解变量的作用域
263 理解左值(1value)
264 理解NULL
265 理解void类型
266 理解指向变量的指针
267 声明和初始化指向变量的指针
268 理解间接操作:获得指针所指向的值
269 理解指针数组:指向指针的指针
270 初始化指针数组
271 理解转换:暂时修改变量类型
272 自动类型转换:混合int和char类型的变量
273 转换指针:危险的迹象
第二十四章 开始C++:面向对象编程
274 面向对象编程
275 C++:C语言的进一步发展
276 OOP的三个原则
277 理解封装
278 将结构理解成一种封装设备
279 理解C++中的类
280 理解多态性
281 理解多态性的示例:函数重载
282 使用类作为多态性的对象
283 理解继承
284 从上至下的继承
285 使用对象
286 将程序划分成对象
287 一个面向对象编程的示例
第二十五章 C++类
288 理解类的元素
289 理解构造函数
290 把参数传递给构造函数
291 在类中使用多个构造函数
292 理解析构函数
293 理解类中的访问关键字
294 使用访问关键字实施封装
295 保持数据成员为私有的
296 理解基类
297 从基类派生一个新类
298 理解多重继承
299 使用基类
300 理解成员函数
301 理解友元类
302 理解友元函数
303 理解虚函数
304 理解抽象类
305 理解嵌套数据类型
306 理解静态成员
307 理解静态函数
308 理解静态数据成员
309 使用静态成员
310 理解作用域分辨
311 理解回调函数
312 理解操作符重载
313 重载操作符
第二十六章 C++I/O
314 使用cin、cout和cerr
315 理解插入符
316 理解提取符
317 理解文件流
318 理解顺序流函数
319 理解随机流函数
320 理解width()、precision0和fill()
321 理解I/O操纵器
322 创建自己的插入符
323 创建自己的提取符
第二十七章 C++数组和指针
324 理解对象指针
325 理解类指针
326 this指针
327 使用malloc()和free()
328 使用new操作符
329 使用delete操作符
330 理解内存泄漏
331 使用派生类指针
332 理解对象指针运算
第二十八章 图形设备接口
333 理解图形设备接口
334 理解设备环境
335 设备环境和输出设备
336 使用Microsoft Foundation Class的设备环境
337 利用GDI绘图
338 理解屏幕坐标
339 理解客户坐标
340 理解打印机设备环境
341 GDI对象:字体
342 理解字体家族
343 GDI对象:画笔
344 GDl对象:刷子
345 GDI对象:位图
346 GDI对象:调色板
347 GDI对象:区域
348 理解映射
349 理解映射模式
350 理解设备坐标
351 理解逻辑坐标
352 理解绘图模式
353 理解图形和点
354 理解路径
355 使用函数BeginPath()和EndPath()
356 解释WM PAINT消息
357 使用函数SetPixel()
358 绘制一系列点
359 绘线
360 使用函数MoveToEx()
361 使用函数LineTo()
362 用一系列直线绘制曲线
363 绘制弧线
364 绘制圆和椭圆
365 绘制封闭区域
366 使用笔
367 使用刷子
368 填充一个封闭区域
369 了解Windows字体类型
370 理解像素尺寸
371 理解字符宽度
372 理解字符属性
373 理解文本对齐方式
374 使用MFC的CFont类
375 理解创建字体的CFont函数
376 理解文本输出函数
377 使用DrawText()函数
378 使用TextOut()和ExtTextOut()函数
379 使用TabbedTextOut
380 理解GrayString()函数
381 理解文本输出的背景模式
382 旋转文本
383 设置文本和背景颜色
384 用CEdit和CStatic派生出来的类设置文本属性
385 GDI示例:绘制一个字符镜像
第二十九章 Microsoft Foundation Class库
386 了解类库
387 使用类库来创建程序
388 引入Microsoft基础类库
389 MFC是如何在Visual Studio中实现的
390 调用Visual Studio向导创建一个基于MFC的程序
391 引入Cobiect
392 应用程序结构类
393 使用对象类
394 文件服务类
395 使用设备场景类
396 绘图对象类
397 控件、支持、数据库、菜单、命冬行、同步和Socket类
398 数组、列表和映射类
399 Intemet服务类
400 窗口类:CWnd介绍
401 理解CWnd子孙类
402 框架窗口类
403 使用CFrameWnd类:单文档界面
404 使用CFrameWnd类:多文档界面
405 使用CSplitterWnd类
406 控件栏类
407 属性表类
408 使用对话框类
409 理解通用对话框类
410 理解属性页类
411 理解用户对话框类
412 理解视图类
413 MFC视图类介绍
414 调用Visul Studio向导创建视图类程序
415 调用Visual Studio向导创建基于对话框的程序
416 文件服务类介绍
417 使用CFile及其子孙类
418 使用内存文件
419 使用Socket文件
420 使用CStdioFile
421 理解CRecentFileList类
422 理解控件类
423 非Cobject派生类
424 理解CString
425 理解CPoint
426 理解Crect
427 理解CSize
428 理解支持类
429 理解同步(锁)类
430 使用CIntemetConnection
431 使用CFtpConnection
432 理解CRuntimeClass
433 理解文档类
434 理解异常类
435 使用工具栏类
436 用MFC类实现打印和打印预览
437 理解线程类
438 理解命令操作器:CCmdUI类
439 理解CWaitCursor类
440 使用ClmageList类
441 从MFC类库派生自定义类
第三十章 Developers Studio向导:创建工程
442 理解New菜单命令
443 创建文件
444 创建工作区
445 创建其他文档
446 创建工程
447 理解小工程
448 理解MFC AppWizard
449 创建MFC EXE工程
450 在工程中加入多文档支持
451 理解文档/视图支持
452 理解数据库支持
453 在工程中加入复合文档支持、ActiveX和Automation
454 选择工程特色
455 理解工具栏选项
456 理解高级选项
457 其他工程选项
458 最后一步:为类命名和选择视图类
459 创建基于对话框的工程
460 为基于对话框的工程选择特色和支持选项
461 选择对话框选项
462 使用MFC创建DLL工程
463 创建Win32库
第三十一章 文档和视图
464 理解文档/视图结构
465 理解文档对象
466 理解视图对象
467 理解文档/视图结构中的窗口框架
468 理解文档管理器
469 理解文档模板
470 在工程中加入多文档类型
471 理解文档/视图中的Windows消息路径
472 理解默认消息
473 重载框架消息处理函数
474 理解CArchive类
475 使用串行化函数
476 理解CView
477 重载OnPaint消息处理函数
478 在CView中显示文本
479 在CView中绘制图形对象
480 使用CScrollView类
481 使用CEditView类
482 在编辑视图中插入文本
483 理解插入和覆盖模式
484 在编辑视图中加入覆盖模式
485 使用编辑视图保存和恢复文本文件
486 使用CRichEditView类
487 使用CRichEditView创建工程
488 理解复合文档支持
489 理解OLE容器支持
490 理解服务器和最小服务器支持
491 添加菜单和工具栏项以支持多文本
492 理解多文本编辑控件中的字符属性
493 理解CHARFORMAT和CHARFORMAT2结构
494 改变字体
495 改变多文本编辑文档视图中的默认字体
496 为文本设置粗体
497 为文本设置斜体、下划线和删除线
498 设置字体和背景颜色
499 设置段落对齐
500 在格式栏中添加字体和字号框
501 在多文本编辑视图中添加用户和文件信息
502 使用串行化保存与恢复用户信息和文件信息
503 使用CListView类
504 理解带CListView的Clmagelist类
505 创建图像列表
506 在列表控件中显示不同的样式
507 增加工具栏来改变显示样式
508 使用LVS OWNERDRAWFIXED样式
509 使用自主绘图属性产生整行选择
510 使用CTreeView类
511 组合CTreeView、CListView和CSplitterWnd创建一个资源管理器类型的应用程序
512 在资源管理器类型的应用程序右面板里使用其他代替视图
513 使用CFormView类
514 创建基于表单的应用程序
515 向程序中插入新的表单
516 在程序中使用多重视图
517 向文档中添加视图
518 从文档中删除视图
519 创建其他视图类:CCtrlView
520 使用CSplitterWnd实现多重视图
521 切分一个分割窗口
522 联合使用CSplitterWnd和文档视图
523 通过改写lnitlnstance函数避免创建初始化文档
524 理解永久保存数据机制
525 保存状态栏中的信息
526 更新与同一文档关联的多个视图
第三十二章 调试技术
527 使用Visual Studio Debugger
528 设置工程项目选项
529 使用调试窗口
530 设置和使用断点
531 单步执行程序
532 调试命令行程序
533 使用Edit and Continue进行调试
534 输出到Output窗口
535 理解远程调试
536 建立远程调试器
537 在远程和本地调试间切换
538 理解实时调试
539 有用的调试技术
540 使用CMemoryState类来检查内存泄漏
第三十三章 Windows通用控件
541 理解Windows环境下的控件
542 理解通用控件
543 理解通用控件窗口类
544 理解通用控件样式
545 通用控件的Windows通知消息
546 通用控件使用的宏
547 通用控件库使用的结构
548 使用通用控件
549 确定通用控件DLL的修订版本
550 Windows通用控件列表
551 从MFC控件类派生自定义类
第三十四章 基本通用控件
552 理解静态文本控件
553 从CStatic派生自定义类以获取功能
554 使用CStatic类
555 理解编辑框控件
556 使用CEdit类
557 从CEdit派生自定义类
558 添加编辑框控件的消息处理
559 理解按钮控件
560 使用CButton类
561 添加按钮控件的消息处理
562 使用命令更新启用或禁用按钮
563 理解复选框
564 使用下压按钮式复选框
565 理解单选按钮
566 将单选按钮分组
567 使用下压式单选按钮
568 在复选框和单选按钮中使用位图和图标
569 理解分组框控件
570 理解列表框控件
571 使用CListBox类
572 理解列表框消息
573 使用列表框字符串函数
574 使用列表框Dir()函数
575 理解组合框控件
576 使用CComboBox类
577 理解组合框样式
578 理解组合框消息
579 理解滚动条控件
580 在视图中添加滚动条
581 在控件中添加滚动条
582 理解SCROLLINFO结构
583 理解CScrollBar类
584 隐藏和显示滚动条
585 解释滚动条消息
586 使用滚动条作为输入控件
第三十五章 Windows 95及后继版本的通用控件
587 理解32位控件
588 理解图像列表控件
589 建立图像列表
590 在控件中添加图像列表
591 绘制图像列表中的图像
592 管理并操作图像列表
593 理解扩展组合框控件
594 使用CComboBoxEx类
595 在扩展组合框中添加项目
596 在CComboBoxEx中使用ClmageList
597 理解CComboBoxEx操作
598 理解Rich Edit控件
599 理解CRichEditCtrl类
600 在Rich Edit控件中进行字符格式化
601 在Rich Edit控件中设置颜色
602 理解Rich Edit事件屏蔽
603 理解Rich Edit控件通知消息
604 理解进度条控件
605 使用CProgressCtl类
606 理解进度条样式
607 设置进度条值域和位置
608 理解进度条操作
609 理解滑动条控件
610 理解CSliderCtrl类
611 使用滑动条控件
612 解释滑动条控件消息
613 理解滑动条控件样式
614 设置Tick Mark
615 使用CSliderCtrl成员函数
616 理解微调控件
617 理解CSpinButtonCtrl类
618 理解微调按钮样式
619 使用CSpinButtonCtrl的成员函数
620 解释微调按钮控件消息
621 理解标头控件
622 使用CHeaderCtrl类
623 动态重排列标头域的使用
624 在标头中使热键追踪功能有效
625 在标头中使用图像列表
626 理解列表控件
627 使用CListCtrl类
628 理解列表控件样式
629 在报表视图模式中启用整行选取
630 为列表控件添加项目
631 使用带图像列表的列表控件
632 理解LPSTR_TEXTCALLBACK和I IMAGECALLBACK样式
633 根据标头域的选择对列表控件排序.
634 理解树状控件
635 理解CTreeCtrl类
636 为树状控件添加分支
637 理解树状控件样式
638 在树状控件中使用图像列表
639 展开和折叠分支
640 理解动画控件
641 使用CAnimateCtrl类
642 理解CAnimateCtrl类的成员函数
643 创建动画文件
644 在工程中添加一个AVl动画文件
645 动画的播放、暂停和停止
646 理解标签控件
647 理解CTabCtri类
648 向标签控件中添加页面
649 在标签控件中使用图像列表
650 在空白标签控件页面上添加控件
651 解释标签控件消息
652 理解状态栏控件
653 使用CStatusBarCtrl类
654 在状态栏控件上设置指示
655 向状态栏中添加控件
656 理解工具栏控件
657 使用CToolBar类
658 在工具栏控件中使用图像列表
659 理解工具提示控件
660 使用CToolTipCtrl类
661 理解热键控件
662 使用CHotKeyCtrl类
663 设置和使用热键
664 理解日期和时间采集控件
665 使用CDateTimeCtrl类
666 理解日期和时间控件样式
667 理解日期和时间格式
668 理解日历控件
669 使用CMonthCalCtrl类
670 定制日历控件
671 理解日历控件属性
672 使用日历消息
673 MFC库中的其他控件类
674 理解位图按钮控件
675 理解IP地址控件
第三十六章 进程和线程
676 理解程序和进程
677 理解exec和sDawn
678 处理不成功的exec
679 理解线程
680 使用MFC线程类
681 理解Windows如何调度线程
682 理解线程优先级
683 使用工人线程
684 使用用户接口线程
685 终止和挂起线程
686 从另一个线程终止线程
687 获取线程返回代码
688 挂起和恢复线程
689 在线程之间共享对象
690 同步线程
691 理解互斥量和信号量
692 理解关键段
693 理解事件
694 等待单个事件
695 等待多个事件
696 使用多线程c运行时库
第三十七章 高级专题:异常处理
697 理解ASSERT宏
698 理解异常
699 抛出异常
700 理解trycatch块
701 理解throw语句
702 捕获异常
703 使用多条catch语句
704 处理错误
705 使用异常通知失败的对象
706 理解TRY、CATCH和END—CATCH宏
707 理解CATCH_ALL和END—CATCH ALL宏
708 理解MFC异常类
709 获取和解释异常类错误信息
710 删除异常对象
711 创建自己的异常类
712 嵌套trycatch块
第三十八章 进程间通信
713 理解进程问通信
714 理解句柄
715 理解进程控制例程
716 理解信号
717 在进程之间使用Windows消息
718 理解排队和非排队消息
719 理解管道
720 使用无名管道进行进程问通信
721 使用CreatePipe()
722 使用命名管道进行进程问通信
723 理解管道操作
724 连接和断开管道
725 关闭管道
726 使用popen函数
727 理解事件作为IPC设备
728 创建命名事件
729 理解信号量作为IPC设备
730 创建和删除信号量
731 使用MFC信号量类
732 锁定和解锁信号量
733 理解映射文件
734 理解内存映射文件
735 理解共享内存