内容简介
第1篇 开发基础篇
第1章 Visual C++6.0开发环境
1.1 Visual C++6.0概述
1.2 认识Visual C++集成开发环境
1.3 IDE菜单栏介绍
1.4 工具栏
1.5 输出窗口
1.6 资源编辑器
1.7 Visual C++学习常见问题
1.8 Visual C++学习方法简介
小结
第2章 利用集成开发环境生成程序
2.1 生成项目(project)
2.2 添加和编辑源文件
2.3 建立程序
2.4 运行程序
2.5 调试程序
2.6 Visual C++生成的项目文件
2.7 编写控制台应用程序
小结
第3章 Windows程序运行原理
3.1 图形界面操作系统的王者——Windows
3.2 什么是多任务操作系统
3.3 Windows应用程序的组成
3.4 建立API的概念
3.4.1 API的发展
3.4.2 标准Win32 API函数分类
3.5 一个用API编写的Windows程序
3.6 Visual C++应用程序开发框架:MFC
3.6.1 从API到MFC
3.6.2 MFC是一个编程框架
小结
第4章 开始使用MFC类库
4.1 MFC的起源和发展
4.2 MFC整体类库结构
4.3 常用MFC类简介
4.3.1 应用程序结构类
4.3.2 调试和异常类
4.3.3 文件服务类
4.3.4 图形处理类
4.3.5 数据库类
4.3.6 Internet支持类
4.4 一个简单的MFC程序
4.5 文档/视图结构
4.5.1 文档类
4.5.2 视图类
4.5.3 使用文档/视图结构的好处
4.5.4 单文档(SDI)与多文档(MDI)应用程序
4.6 窗口类及其控件栏
4.6.1 子窗口类
4.6.2 主窗口类
4.6.3 工具栏
4.6.4 状态栏
4.7 MFC创建的完整应用程序实例
小结
第5章 菜单与加速键
5.1 消息与事件
5.1.1 事件驱动机制
5.1.2 消息和消息映射
5.1.3 消息处理过程
5.2 菜单和加速键的创建
5.2.1 菜单的创建
5.2.2 加速键的创建
5.3 添加菜单所需的处理函数
5.3.1 添加普通菜单的处理函数
5.3.2 添加弹出式菜单的处理函数
5.4 加载加速键
小结
第6章 AppWizard和ClassWizard
6.1 一个简单应用程序的创建
6.1.1 MFC AppWizard
6.1.2 ClassWizard
6.1.3 程序实例
6.2 程序调试
6.2.1 创建调试实例程序
6.2.2 调试器
小结
第7章 在Windows中绘制图像
7.1 绘图的基础知识
7.1.1 映射模式
7.1.2 设备上下文
7.2 图形设备接口(GDI)
7.2.1 设备环境类(CDC)
7.2.2 GDI对象
7.3 简单图形的绘制
7.3.1 屏幕绘图的主要函数
7.3.2 图形绘制基本原则
7.3.3 画笔
7.3.4 画刷
小结
第2篇 关键控件篇(MFC)
第8章 常用界面控件
8.1 静态文本(Static Text)控件
8.1.1 传统控件通知消息
8.1.2 静态控件的使用
8.1.3 CStatic类的主要成员函数
8.2 文本编辑(Edit Box)控件
8.2.1 文本编辑控件的使用
8.2.2 CEdit类的主要成员函数
8.3 滚动条(Scroll Bar)控件
8.3.1 滚动条控件的使用
8.3.2 CScrollBar类的主要成员函数
8.4 按钮控件
8.4.1 按钮控件的使用
8.4.2 CButton类的主要成员函数
8.5 列表框(List Box)控件
8.5.1 列表框控件的使用
8.5.2 ClistBox类的主要成员函数
8.6 组合框(Combo box)控件
8.7 图片(Picturre)控件
8.8 列表(List Ctrl)控件
8.8.1 Win 32新型控件概述
8.8.2 列表控件的使用
8.8.3 ClistCtrl类的主要成员函数
8.9 树形(Tree Ctrl)控件
8.9.1 树形控件的使用
8.9.2 CTreeCtrl类的主要成员函数
8.9.3 树形控件的通知消息
8.10 选项卡(Tab Ctrl)控件
8.10.1 选项卡控件的使用
8.10.2 选项卡控件通知消息
8.10.3 选项卡控件的使用
8.11 应用实例:进制转换计算器
8.11.1 进制转换计算器功能概述
8.11.2 实例具体实现步骤
小结
第9章 文本和字体类
9.1 基础知识介绍
9.2 CFont类
9.3 文本输出过程
9.4 字体和文本输出实例
9.5 根据数据绘制相应的柱状图
9.6 根据坐标绘制三角形
小结
第10章 对话框
10.1 对话框的创建
10.1.1 对话框的创建流程
10.1.2 创建对话框资源
10.1.3 对话框窗口布局
10.1.4 创建对话框类和菜单栏制作
10.2 模态对话框
10.3 非模态对话框
10.4 功能代码实现
10.5 属性页对话框
10.5.1 主要相关类介绍
10.5.2 一般属性页对话框的创建步骤
10.5.3 向导对话框的创建步骤
10.6 通用对话框
10.6.1 打印设置对话框
10.6.2 页面设置对话框
10.6.3 查找对话框
10.6.4 文件对话框
10.6.5 字体对话框
10.6.6 颜色对话框
10.7 消息对话框
10.7.1 MessageBox()函数
10.7.2 AfxMessageBox()函数
10.8 菜单和对话框综合实例
10.8.1 实例描述
10.8.2 实例实现步骤
10.8.3 编写关键代码
10.8.4 开发经验总结与提高练习
小结
第11章 文件操作
11.1 串行化的基本原理
11.1.1 文档类
11.1.2 Serialize()函数
11.1.3 CArchive类
11.1.4 串行化实例
11.2 文件CFile类
11.2.1 打开操作
11.2.2 读写操作
11.2.3 定位操作
11.2.4 关闭操作
11.2.5 异常操作
11.2.6 管理操作
11.3 文件对话框
11.3.1 多选文件对话框
11.3.2 重载文件对话框
小结
第12章 学生成绩管理系统
12.1 学生成绩管理系统功能描述
12.2 项目的建立
12.3 关键类的创建及实现
12.4 开发“添加记录”对话框
12.5 设计“删除记录”对话框及其相应的功能
12.6 添加“查找记录”对话框
12.7 添加菜单
小结
第3篇 深入学习篇
第13章 动态链接库
13.1 动态链接库的基础知识
13.2 DLL的出入口函数
13.2.1 DllMain()函数
13.2.2 DLL的导出函数
13.3 两种链接DLL的方式
13.3.1 隐式链接
13.3.2 显式链接
13.4 开发DLL
13.4.1 创建Non-MFC Dll动态链接库
13.4.2 MFC AppWizard[dll]方式生成常规/扩展DLL
13.4.3 导出函数调用约定
13.4.4 模块定义文件(DEF)
13.5 在动态链接库中使用资源
13.6 界面汉化示例
13.7 使用钩子(Hook)函数
13.7.1 钩子函数的类型
13.7.2 使用钩子函数
13.7.3 鼠标钩子应用实例
13.7.4 键盘钩子应用实例
小结
第14章 多线程
14.1 多线程的基本概念
14.2 两种重要的线程
14.2.1 工作者线程
14.2.2 用户界面线程
14.3 线程的操作
14.3.1 线程的创建
14.3.2 线程的终止
14.3.3 线程的管理和操作
14.3.4 线程的同步
小结
第15章 网络编程
15.1 网络编程的基础知识
15.1.1 Socket简介
15.1.2 Windows套接字规范简介
15.2 网络应用程序基本规范
15.2.1 网络应用程序的基本模型
15.2.2 初始化
15.2.3 建立套接字对象
15.2.4 绑定地址与端口
15.2.5 建立通信连接
15.2.6 数据传输
15.3 WinSock类
15.3.1 CAsyncSocket类
15.3.2 CSocket类
15.4 客户端/服务器网络程序设计
15.4.1 网络编程的基本任务
15.4.2 客户端程序的实现
15.4.3 服务器端程序的实现
小结
第16章 数据库开发技术
16.1 概述
16.1.1 数据库相关技术介绍
16.1.2 数据库应用程序的开发步骤
16.1.3 选择数据库管理系统的原则
16.2 设计、创建和维护Access数据库
16.2.1 创建Access数据库
16.2.2 创建数据表
16.2.3 设计和修改数据表的结构
16.2.4 设置表之间的关系
16.2.5 编辑和管理数据表记录
16.3 标准的SQL语句
16.3.1 基本的SQL语句
16.3.2 数据表的联合查询技术
16.4 ADO的技术特点
16.4.1 数据库访问接口介绍
16.4.2 ADO的特点
16.5 ADO的对象和集合
16.5.1 连接对象
16.5.2 命令对象
16.5.3 记录集对象
16.5.4 ADO的集合
16.6 数据库操作
16.6.1 动态链接库的引入和COM库的初始化
16.6.2 ADO与数据库的连接
16.6.3 获得和遍历记录集
16.6.4 对记录的操作
16.7 利用ADO查询并操作数据库实例
小结
第4篇 专业项目开发篇
第17章 电子元器件绘制系统
17.1 系统背景
17.1.1 坐标变换和映射模式
17.1.2 OnPaint()和OnDraw()
17.2 序列化
17.2.1 序列化概念
17.2.2 序列化机制
17.2.3 实现类的序列化
17.2.4 文档/视图架构程序中数据的序列化
17.3 电子元器件绘制系统的需求分析
17.3.1 绘制功能
17.3.2 图形编辑功能
17.3.3 器件属性的编辑
17.4 电子绘制系统分析与详细设计
17.4.1 业务过程分析
17.4.2 抽象出来的类(类图)
17.4.3 其他的数据结构
17.4.4 器件示意图的外观比例设计
17.5 重点功能实现方法
17.5.1 绘制器件图
17.5.2 选择器件图
17.5.3 器件图的放大/缩小、单个器件图的移动
17.5.4 器件图的Z_Order顺序调整
17.5.5 复制/粘贴
17.5.6 鼠标形状的改变
17.5.7 截获Windows的消息实现多个器件图的移动
17.5.8 理解CObList类,以防内存泄漏
17.6 进阶与提高
小结
第18章 统一数据库管理系统
18.1 统一数据库管理系统的开发背景
18.2 统一数据库管理平台的用户需求
18.2.1 数据表管理功能
18.2.2 视图管理功能
18.2.3 存储过程管理功能
18.2.4 数据操作功能
18.2.5 SQL操作功能
18.3 统一数据库管理平台的分析与设计
18.3.1 数据库管理功能分析和设计
18.3.2 系统的数据结构
18.3.3 统一数据库管理平台的主界面
18.4 重点代码讲解
18.4.1 取得数据库的结构
18.4.2 动态创建数据源
18.4.3 创建数据库
18.4.4 删除数据库
18.4.5 存储过程的相关操作
18.4.6 显式调用外部DLL
18.4.7 取得数据库对象的脚本
18.4.8 Explorer风格窗口
18.4.9 树控件
18.5 安装与配置
小结
第19章 考勤系统
19.1 用MFC DAO的方法访问数据库
19.1.1 MFC DAO类
19.1.2 数据库操作
19.1.3 表操作
19.1.4 记录集操作
19.2 MFC中的动态数据交换机制
19.3 结构化异常处理
19.3.1 结构化异常处理机制(SEH)
19.3.2 MFC中的异常类
19.4 需求分析说明
19.4.1 签到功能
19.4.2 查询功能
19.4.3 修改功能
19.4.4 系统配置功能
19.4.5 员工维护
19.4.6 用户登录
19.4.7 系统用户维护
19.5 系统分析与数据库设计
19.5.1 数据库设计
19.5.2 类设计
19.6 重点功能实现代码
19.6.1 改变对话框中控件的字体
19.6.2 取得记录集对象的记录个数
19.6.3 登录对话框实现
19.6.4 用户权限决定可使用的功能(菜单的控制)
19.6.5 CTime类在签到功能中的使用
19.6.6 查询某个员工某个时间段的出勤情况
19.6.7 修改出勤功能实现
19.6.8 员工维护
19.6.9 系统配置维护
19.6.10 用户管理
小结
第20章 网络信使系统
20.1 XML DOM技术基本知识
20.1.1 XML概述
20.1.2 DOM接口
20.1.3 创建DOM文档对象
20.1.4 加载XML文档
20.1.5 遍历XML文档
20.2 网络信使需求分析
20.2.1 在线朋友维护
20.2.2 聊天功能
20.2.3 文件传输拖动功能
20.2.4 查看历史信息
20.3 分析与设计
20.3.1 类设计
20.3.2 XML方式的数据格式
20.3.3 在线朋友数据结构
20.4 重点代码讲解
20.4.1 读取系统配置和用户配置XML文件
20.4.2 UDP广播实现朋友上线
20.4.3 朋友下线通知
20.4.4 XML聊天报文发送
20.4.5 聊天报文接收
20.4.6 查看聊天历史记录
20.4.7 文件发送
20.4.8 文件接收
20.4.9 拖动文件实现
小结
第21章 软件在线升级系统
21.1 COM基本知识
21.1.1 COM的特点
21.1.2 COM接口
21.1.3 IUnknown接口
21.1.4 类厂(class factory)
21.2 用ATL编写COM
21.2.1 C++中的模板
21.2.2 智能指针
21.2.3 ATL的智能指针
21.3 WinInet API中与HTTP相关的函数
21.3.1 HTTP的工作方式
21.3.2 HTTP客户请求
21.3.3 HTTP客户获取服务器的响应信息
21.4 MFC WinInet类
21.4.1 CInternetSession类
21.4.2 连接类
21.4.3 文件类
21.4.4 文件查找
21.5 软件在线升级系统的用户需求
21.5.1 初始下载界面
21.5.2 下载应用系统安装程序
21.5.3 安装应用系统
21.5.4 检查当前服务器上的版本号
21.5.5 更新应用系统
21.6 软件在线升级系统的分析与设计
21.6.1 IE瘦客户端
21.6.2 Web+Active X
21.6.3 应用程序端
21.6.4 Web页面
21.7 重点代码讲解
21.7.1 工程创建和IUpgradeAtx接口
21.7.2 判断程序是否已经存在
21.7.3 远程FTP下载
21.7.4 启动安装
21.7.5 COM组件在IE中显示进度
21.7.6 Active X的安装与压缩cabarc
21.7.7 对Cab文件进行数字签名
21.7.8 网页的编写
21.7.9 服务器方提供当前最新的版本号
小结
第22章 五笔编码速查系统
22.1 需求分析说明
22.1.1 五笔编码查询功能
22.1.2 在线升级
22.1.3 快捷键呼叫功能
22.1.4 最小化到通知区
22.1.5 指定汉字输入法
22.2 系统分析与设计
22.2.1 五笔编码查询设计
22.2.2 在线检查升级设计
22.3 重点功能实现代码
22.3.1 五笔编码查询
22.3.2 在线升级
22.3.3 修改PropertySheet窗口风格
22.3.4 给PropertySheet加入菜单
22.3.5 拦截PropertySheet的内定动作
22.3.6 加入快捷键支持
22.3.7 最简单的自定义消息框MessageBoxIndirect
22.3.8 通知区功能
22.3.9 控制系统单一运行实例
22.3.10 选择和激活输入法
22.3.11 保存系统配置
小结
第23章 流媒体计费系统
23.1 需求分析说明
23.1.1 授权
23.1.2 计费
23.1.3 内容翻转
23.1.4 限制连接数量
23.1.5 支持多个收费目录
23.2 系统分析与设计
23.2.1 架构选择与设计
23.2.2 授权功能
23.2.3 计费功能
23.2.4 限制和翻转播放内容
23.3 重点功能实现代码
23.3.1 Helix Universal Server开发环境
23.3.2 编写Helix Universal Server插件
23.3.3 限制和翻转播放内容
23.3.4 建立定时器控制
23.3.5 进行授权请求
23.3.6 进行计费请求
23.3.7 创建常用对象IRMAValues和IRMABuffer
23.3.8 自定义插件描述信息
23.3.9 从连接中得到Cookie
23.3.10 使用UDP进行通信
小结
第24章 停车场管理系统
24.1 Visual C++实现串口通信
24.1.1 串口通信概述
24.1.2 控件的方法实现串口通信
24.1.3 标准通信函数的方法实现串口通信
24.1.4 文件的方法实现串口通信
24.2 需求分析说明
24.3 系统分析与设计
24.3.1 数据库设计
24.3.2 进入停车场
24.3.3 条形码支持
24.3.4 收费
24.3.5 智能报价
24.3.6 LED电子显示屏
24.4 重点功能实现代码
24.4.1 串口通信
24.4.2 使用视频设备
24.4.3 在Visual C++中隐式调用DLL
24.4.4 系统配置信息
24.4.5 同步客户机和服务器上的时间
24.4.6 智能报价
24.4.7 条码打印
24.4.8 自定义动画播放
小结
第2章 利用集成开发环境生成程序
【实例】一个简单的控制台应用程序:运行程序后,会自动打开一个对话框,上面显示“HELLO!”字样
第3章 Windows程序运行原理
【实例】一个用API编写的Windows应用程序。
第4章 开始使用MFC类库
【实例4.1】第一个MFC类创建的程序:使用MFC创建一个Windows应用程序,其作用是生成并打开一个空白窗口。
【实例4.2】一个简单的单文档或多文档应用程序。
【实例4.3】用MFC方法来实现一段“hello wor1d”程序:产生一个窗口,在窗口中显示hello world字样。
第5章 菜单与加速键
【实例】编写一个菜单程序,当用户按下一个标识为“PushMe”的菜单时,弹出一个带有“谢谢你,你已进入了一个全新的学习阶段,祝你学习开心!”的消息框。
第6章 AppWizard和ClassWizard
【实例6.1】编写一个简单的实例程序,要求Example程序编写完成后的运行画面如图6-1所示。
【实例6.2】调试实例:为了更好地介绍调试技术,我们需要建立一个程序Example。
第7章 在Windows中绘制图像
【实例】绘制简单折线图。
第9章 文本和字体类
【实例9.1】使用成员函数CreateFont()来创建CFont对象并绘制文本“中国欢迎您”。
【实例9.2】使用成员函数CreateFontIndirect(),通过LOGFONT结构来创建CFont对象并绘文本“中国欢迎您”。
【实例9.3】使用CreateFont()函数和TextOut()函数自定义逻辑字体并输出。
【实例9.4】使用CreateFontIndirect()函数和DrawText()函数自定义逻辑字体并输出
第11章 文件操作
【实例11.1】将数据串行化到一个文件。
【实例11.2】创建电话簿并保存信息。
【实例11.3】CFile类实现文件的打开操作。
【实例11.4】异常处理代码。
【实例11.5】Close()函数使用实例。
【实例11.6】Abort()函数使用实例。
【实例11.7】TRY/CATCH块获得文件异常信息的示例代码。
【实例11.8】创建一个可以多选的文件对话框。
【实例11.9】重载文件对话框。
第13章 动态链接库
【实例13.1】通过隐式链接调用MyDll.dll库中的Min函数
【实例13.2】在动态链接库中方便地使用资源
【实例13.3】界面汉化系统。
【实例13.4】鼠标钩子应用实例。
【实例13.5】键盘钩子应用实例。
第14章 多线程
【实例14.1】创建工作者线程。
【实例14.2】唤醒线程实例。
【实例14.3】在线程函数中调用AfxEndThread()函数终止线程。
【实例14.4】安全地使用CWinThread对象。
【实例14.5】演示不同优先级的线程工作情况,用绘制矩形的方法来显示执行快慢。
【实例14.6】线程挂起和恢复。
【实例14.7】用CCriticalSection保护堆栈数据。
【实例14.8】用CEven控制线程运行顺序。
【实例14.9】利用CMutex类实现和CCriticalSection相同的功能。