《Visual C++开发技术大全》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:李琳娜等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302221890
  • 页数:820 页
图书介绍:本书共分7篇。第一篇介绍Visual C++6.0开发环境及搭建、C++基本语法及面向对象思想;第二篇介绍Windows编程、MFC基础、菜单、工具栏、状态栏、Windows标准控件等技术等等。

第1篇 Visual C++开发基础 2

第1章 Visual C++ 6.0集成开发环境(教学视频:60分钟) 2

1.1 Visual C++ 6.0及其开发环境 2

1.1.1 Visual C++ 6.0的安装 2

1.1.2 Visual C++ 6.0开发环境 3

1.1.3 Visual C++ 6.0向导 5

1.2 菜单 6

1.2.1 Visual C++ 6.0主要菜单项 6

1.2.2 使用菜单栏 9

1.2.3 使用快捷菜单 9

1.2.4 定制菜单栏 9

1.3 工具栏 10

1.3.1 使用工具栏 10

1.3.2 工具按钮和菜单项相结合 11

1.3.3 多个工具栏的使用 12

1.3.4 自定义工具栏 12

1.4 状态栏 13

1.4.1 状态栏的定义 13

1.4.2 状态栏的常用操作 13

1.5 功能快捷键 14

1.5.1 常用功能快捷键及查看 14

1.5.2 分配功能快捷键 15

1.5.3 删除功能快捷键 16

1.5.4 重置功能快捷键 16

1.6 文本编辑器 16

1.6.1 Visual C++的编辑器 16

1.6.2 全屏编辑模式 17

1.6.3 平铺文件对话框 18

1.6.4 分割文件对话框 19

1.6.5 使用IntelliSense智能提示 20

1.7 资源与资源编辑器 21

1.7.1 资源 21

1.7.2 资源编辑器 22

1.8 工作区视图 23

1.8.1 文件视图 23

1.8.2 类视图 23

1.8.3 资源视图 23

1.8.4 数据视图 24

1.9 调试对话框 24

1.9.1 使用调试对话框 24

1.9.2 输出对话框 25

1.9.3 监视对话框 25

1.9.4 变量对话框 26

1.9.5 寄存器对话框 27

1.9.6 内存对话框 27

1.9.7 堆栈对话框 27

1.9.8 汇编对话框 28

1.10 联机帮助 28

1.11 本章小结 29

第2章 Visual C++ 6.0基本应用程序的创建(教学视频:45分钟) 30

2.1 使用AppWizard生成工程 30

2.1.1 工程与工作区 30

2.1.2 创建工作区 31

2.1.3 工作区视图 31

2.1.4 使用AppWizard创建工程 32

2.1.5 AppWizard可创建的工程类型 34

2.2 Win32控制台应用程序 35

2.2.1 利用向导生成Win32控制台工程 35

2.2.2 新建和编辑源文件 36

2.2.3 编译程序 37

2.2.4 链接程序 38

2.2.5 生成程序 38

2.2.6 运行程序 40

2.2.7 调试程序 40

2.3 MFC应用程序框架 41

2.3.1 MFC应用程序框架及其创建 41

2.3.2 文档/视图结构简介 42

2.3.3 基于文档/视图结构的MFC应用程序 43

2.4 对话框应用程序 45

2.4.1 使用向导生成对话框应用程序 45

2.4.2 对话框程序结构简介 46

2.5 选项设置及版本 48

2.5.1 设置常用编译选项 48

2.5.2 设置C++编译选项 49

2.5.3 设置代码生成编译选项 49

2.5.4 设置个性化编译选项 50

2.5.5 设置代码优化选项 51

2.5.6 设置链接选项 51

2.5.7 生成浏览文件 52

2.5.8 工程配置 53

2.5.9 从调试版本到发布版本的调整——ASSERT语句 54

2.6 本章小结 55

第3章 C/C++语言基础(教学视频:79分钟) 56

3.1 对标准C的扩展——C++ 56

3.2 C++程序基本元素 57

3.2.1 符号 57

3.2.2 注释 58

3.2.3 标识符 59

3.2.4 关键字 59

3.2.5 标点符号 60

3.2.6 操作符 61

3.2.7 声明与定义 62

3.3 常量和变量 63

3.3.1 常量的定义 63

3.3.2 常量成员函数 66

3.3.3 变量的定义 66

3.3.4 作用域 67

3.4 数据类型 69

3.4.1 基本数据类型 69

3.4.2 数据类型转换 71

3.4.3 数组 71

3.4.4 结构体 72

3.4.5 共用体 72

3.4.6 匿名共用体 74

3.4.7 枚举类型 76

3.4.8 用typedef定义类型 77

3.4.9 位域 77

3.5 运算符和表达式 78

3.5.1 算术运算符 79

3.5.2 赋值运算符 79

3.5.3 关系运算符 81

3.5.4 逻辑运算符 82

3.5.5 位运算符 83

3.5.6 三目运算符 84

3.5.7 增1和减1运算符 84

3.5.8 逗号运算符 85

3.5.9 sizeof运算符 86

3.5.10 new和delete 87

3.5.11 范围确定符 88

3.5.12 类成员访问符 88

3.5.13 成员指针操作符 89

3.6 基本控制语句 90

3.6.1 表达式语句、空语句和复合语句 90

3.6.2 选择语句 90

3.6.3 循环语句 94

3.6.4 跳转语句 97

3.7 函数 98

3.7.1 函数的定义和调用 98

3.7.2 带默认形参值的函数 99

3.7.3 函数的递归调用 100

3.7.4 内联函数 101

3.7.5 函数的重载 102

3.8 指针和引用 102

3.8.1 指针和指针变量 103

3.8.2 &和*运算符 103

3.8.3 指针和数组 104

3.8.4 指针和结构体 105

3.8.5 函数的指针传递 105

3.8.6 引用及函数的引用传递 106

3.9 预处理 106

3.9.1 宏定义 106

3.9.2 文件包含 107

3.9.3 条件编译 108

3.10 文件操作 108

3.10.1 打开文件 109

3.10.2 读文件 109

3.10.3 写文件 109

3.10.4 关闭文件 110

3.10.5 文件操作示例 110

3.11 本章小结 111

第4章 C++面向对象程序设计(教学视频:50分钟) 112

4.1 类和对象 112

4.1.1 从结构到类 112

4.1.2 类的定义 112

4.1.3 对象的定义 114

4.1.4 嵌套类 115

4.2 类的成员及特性 115

4.2.1 构造函数 115

4.2.2 析构函数 117

4.2.3 对象成员初始化 118

4.2.4 常类型(const) 118

4.2.5 this指针 119

4.2.6 类的作用域和对象的生存期 119

4.2.7 静态成员 120

4.2.8 友元 121

4.3 继承和派生类 123

4.3.1 继承语法 124

4.3.2 派生类的构造函数和析构函数 125

4.3.3 多重继承 126

4.3.4 虚基类 128

4.4 多态和虚函数 129

4.4.1 虚函数 129

4.4.2 纯虚函数和抽象基类 130

4.5 运算符重载 131

4.5.1 运算符重载语法 131

4.5.2 可重载的运算符 131

4.5.3 重载赋值符 133

4.6 输入输出流库 133

4.6.1 概述 133

4.6.2 cout和cin 134

4.6.3 流的错误处理 135

4.6.4 使用输入输出成员函数 135

4.6.5 文件流概述 136

4.6.6 顺序文件操作 136

4.6.7 随机文件操作 137

4.7 模板 138

4.7.1 函数重载机制的不足 139

4.7.2 函数模板 139

4.7.3 类模板 140

4.7.4 模板与宏 141

4.7.5 模板示例 142

4.7.6 标准模板库简介 143

4.8 C++实例——设计一个电子时钟 144

4.9 本章小结 145

第2篇 界面开发 148

第5章 Windows编程与MFC基础(教学视频:27分钟) 148

5.1 Windows编程基础 148

5.1.1 Windows API函数 148

5.1.2 窗口与句柄 149

5.1.3 事件与消息 149

5.1.4 常用的Windows数据类型 150

5.2 Windows应用程序分析 150

5.2.1 入口函数——WinMain() 151

5.2.2 注册对话框类 151

5.2.3 创建窗口 152

5.2.4 消息循环 152

5.2.5 WinProc对话框函数 153

5.2.6 Windows编程实例——设计一个电子时钟 154

5.3 MFC基础 156

5.3.1 MFC概述 156

5.3.2 MFC基础类及其层次结构 157

5.3.3 MFC中的全局函数 157

5.4 MFC应用程序框架分析 159

5.4.1 入口函数 159

5.4.2 应用程序对象 160

5.4.3 InitInstance()函数 160

5.4.4 Run()函数 161

5.5 MFC的消息映射 161

5.5.1 标准Windows消息 162

5.5.2 命令消息 162

5.5.3 用户自定义消息 163

5.5.4 注册Windows消息 164

5.6 本章小结 164

第6章 菜单、工具栏和状态栏(教学视频:24分钟) 165

6.1 菜单及其相关资源的使用 165

6.1.1 菜单的种类及开发步骤 165

6.1.2 菜单的创建与编辑 165

6.1.3 菜单命令消息的处理 166

6.1.4 菜单更新消息的处理 167

6.1.5 为菜单项设置快捷键 169

6.1.6 弹出式菜单的创建与使用 169

6.1.7 菜单类CMenu的简单介绍 170

6.2 工具栏的使用 172

6.2.1 工具栏的创建与编辑 172

6.2.2 停靠和浮动工具栏 173

6.2.3 工具提示 173

6.2.4 工具栏类CToolBar的简单介绍 174

6.3 状态栏的使用 175

6.3.1 状态栏的创建 175

6.3.2 状态栏实例 176

6.3.3 状态栏类CStatusBar的简单介绍 178

6.4 本章小结 178

第7章 使用Windows标准控件(教学视频:36分钟) 179

7.1 Windows标准控件 179

7.1.1 Windows控件简介 179

7.1.2 使用对话框编辑器创建控件 180

7.1.3 控件类的基类——CWnd 181

7.1.4 控件的消息及其处理 181

7.1.5 创建控件对象 183

7.2 按钮控件 184

7.2.1 按钮控件简介 184

7.2.2 按钮控件类CButton 184

7.2.3 按钮控件的属性与消息 184

7.2.4 按钮状态的确定 184

7.3 静态控件与编辑控件 185

7.3.1 静态控件的创建与使用 185

7.3.2 静态控件类CStatic 185

7.3.3 编辑控件的创建 186

7.3.4 编辑控件类CEdit 186

7.3.5 编辑控件的消息 187

7.3.6 编辑控件的应用实例 187

7.4 单选按钮控件和复选框控件 192

7.4.1 单选按钮控件的创建 192

7.4.2 单选按钮控件的消息 193

7.4.3 复选框控件的创建 193

7.4.4 复选框控件的消息 193

7.4.5 单选按钮控件和复选框控件的实例 194

7.5 列表框控件和组合框控件 195

7.5.1 列表框控件的创建 195

7.5.2 列表框控件类CListBox 195

7.5.3 列表框控件的消息 196

7.5.4 列表框控件实例 197

7.5.5 组合框控件的创建 197

7.5.6 组合框控件类CComboBox 198

7.5.7 组合框控件的消息 198

7.5.8 组合框控件的实例 199

7.6 微调控件、滑块控件和进度条控件 200

7.6.1 微调控件的创建和使用 200

7.6.2 滑块控件的创建和使用 200

7.6.3 进度条控件的创建及使用 201

7.6.4 微调控件、滑块控件和进度条控件编程实例 201

7.7 列表视图控件和树形视图控件 203

7.7.1 列表视图控件的创建 203

7.7.2 列表视图控件类CListCtrl 204

7.7.3 列表视图控件的通知消息 204

7.7.4 树形视图控件的创建 204

7.7.5 树形视图控件类CTreeCtrl 204

7.7.6 树形视图控件的消息 205

7.7.7 列表视图控件和树形视图控件编程实例 206

7.8 ActiveX控件 206

7.8.1 ActiveX控件的使用 206

7.8.2 ActiveX控件的结构 206

7.8.3 包装类 207

7.8.4 获取ActiveX控件的帮助信息 207

7.8.5 Visual C++中的控件和组件库 209

7.8.6 MFC程序中ActiveX控件的使用 210

7.9 本章小结 210

第8章 MFC的一些常用类(教学视频:46分钟) 211

8.1 字符串类(CString) 211

8.1.1 CString对象的创建 211

8.1.2 CString类的成员函数 211

8.1.3 CString类的常用操作 213

8.1.4 CString的格式化与类型转换 215

8.1.5 CString使用实例 217

8.2 MFC的集合类 217

8.2.1 数组类 218

8.2.2 数组类的使用实例 219

8.2.3 链表类 220

8.2.4 链表类的使用实例 221

8.3 日期、时间类 223

8.3.1 CTime类 223

8.3.2 CTime对象的格式化 224

8.3.3 CTimeSpan类 225

8.3.4 计时器的使用实例 226

8.4 MFC文件操作类——CFile 227

8.4.1 构造文件对象并打开文件 227

8.4.2 文件的读写操作 228

8.4.3 文件的定位操作 229

8.4.4 文件的管理操作 229

8.4.5 使用CFile类进行文件操作实例 230

8.5 MFC异常类 231

8.5.1 MFC异常类简介 231

8.5.2 文件异常类CFileException 232

8.5.3 异常的捕获 232

8.6 本章小结 233

第9章 文档/视图结构应用程序开发(教学视频:14分钟) 234

9.1 文档/视图结构应用程序框架分析 234

9.1.1 程序框架中的主要类及相互关系 234

9.1.2 文档类、视图类核心函数及作用 236

9.1.3 新建、保存和打开的实现 238

9.1.4 多文档应用程序框架 239

9.2 文档/视图结构应用程序的开发 240

9.2.1 实现目标 240

9.2.2 创建基本的程序框架 240

9.2.3 创建文档数据 241

9.2.4 在视图类中实现绘图操作 242

9.2.5 文档的序列化 243

9.2.6 让文档/视图结构程序支持滚动条 244

9.3 对话框分割与多视 246

9.3.1 对话框分割基础知识 246

9.3.2 动态分割对话框的实现 247

9.3.3 静态分割对话框与多视图的实现 248

9.4 文档/视图应用程序实例 249

9.5 本章小结 251

第10章 对话框的应用(教学视频:45分钟) 252

10.1 对话框的工作方式、种类和创建方法 252

10.1.1 对话框在应用程序中的工作方式 252

10.1.2 对话框的种类 253

10.1.3 对话框模板的创建与编辑 253

10.2 对话框与程序连接 254

10.2.1 创建对话框类 254

10.2.2 为对话框类添加成员变量 255

10.2.3 对话框数据交换与验证 256

10.2.4 对话框控件通知消息的处理 258

10.3 对话框的创建与显示 259

10.3.1 创建模态对话框 259

10.3.2 创建非模态对话框 260

10.3.3 修改对话框背景颜色 260

10.3.4 关闭对话框 261

10.4 属性表对话框 261

10.4.1 属性表对话框的运行机制 261

10.4.2 属性表对话框的创建 262

10.5 消息对话框与公用对话框 263

10.5.1 消息对话框实例 263

10.5.2 颜色对话框实例 264

10.5.3 文件对话框实例 265

10.5.4 字体对话框实例 266

10.5.5 查找、替换对话框实例 266

10.5.6 打印对话框实例 267

10.6 本章小结 268

第3篇 数据库开发 270

第11章 数据库开发概述(教学视频:35分钟) 270

11.1 数据库简介 270

11.1.1 数据库历史 270

11.1.2 数据库的基本概念 271

11.1.3 数据库的主要作用 271

11.1.4 数据库管理系统(DBMS) 272

11.1.5 4种数据模型 272

11.1.6 数据库体系结构 274

11.1.7 关系数据库 274

11.1.8 数据库的开发过程 275

11.2 规范化理论 276

11.2.1 规范化原因 276

11.2.2 数据依赖 277

11.2.3 范式介绍 279

11.3 E-R模型 281

11.3.1 E-R模型元素 281

11.3.2 E-R设计 283

11.4 结构化查询语言SQL 283

11.4.1 SQL概述 284

11.4.2 SQL数据定义 284

11.4.3 SQL数据操纵 286

11.4.4 SQL数据控制 287

11.4.5 操作视图 288

11.5 Visual C++数据库接口 289

11.5.1 面向对象技术 289

11.5.2 Windows平台下的数据访问接口 289

11.5.3 Visual C++数据访问接口 291

11.5.4 用Visual C++访问数据库的优点 292

11.6 本章小结 292

第12章 Visual C++中SQL Server访问技术(教学视频:36分钟) 293

12.1 SQL Server 2005简介 293

12.1.1 SQL Server 2005介绍 293

12.1.2 SQL Server 2005的安装 294

12.1.3 SQL Server 2005的工具 295

12.1.4 使用SQL Server 2005配置管理器 296

12.1.5 使用SQL Server Management Studio 297

12.2 使用Management Studio创建SQL Server 2005对象 298

12.2.1 创建用户数据库 298

12.2.2 创建和管理表 299

12.2.3 创建和管理视图 300

12.2.4 创建和管理存储过程 301

12.3 ADO访问技术 301

12.3.1 ADO模型 302

12.3.2 ADO数据库访问步骤分析 303

12.4 使用ADO访问数据库实例 304

12.4.1 ADO连接SQL Server数据库 304

12.4.2 ADO读取数据库表记录 305

12.4.3 ADO写入数据库表记录 307

12.4.4 ADO删除数据库表记录 308

12.4.5 ADO调用SQL Server存储过程 309

12.5 本章小结 311

第13章 Visual C++中ODBC访问技术(教学视频:35分钟) 312

13.1 ODBC API 312

13.1.1 ODBC体系结构 312

13.1.2 ODBC数据类型 313

13.1.3 ODBC句柄与返回值 314

13.1.4 ODBC驱动和管理器 315

13.1.5 配置ODBC数据源 316

13.2 用ODBC API操作数据库实例 318

13.2.1 操作数据库的一般步骤 318

13.2.2 连接数据库 318

13.2.3 读取数据库表记录 319

13.2.4 添加、删除记录 320

13.2.5 断开数据库连接 321

13.2.6 ODBC API封装类实例 321

13.3 用MFC ODBC类操作数据库 327

13.3.1 连接数据库——CDatabase类 327

13.3.2 选择和操作记录——CRecordset类 328

13.3.3 在窗体中显示和操作数据——CRecrodView类 330

13.3.4 异常处理——CDBException类 331

13.3.5 断开数据源连接 332

13.3.6 MFC ODBC操作数据库实例 332

13.4 自动注册DSN 335

13.5 本章小结 336

第14章 Visual C++中OLE DB访问技术(教学视频:18分钟) 337

14.1 OLE DB的概念 337

14.1.1 什么是OLE DB 337

14.1.2 OLE DB和ODBC之间的关系 338

14.2 Viaual C++中的OLE DB类 338

14.2.1 CDataSource类 338

14.2.2 CSession类 339

14.2.3 CRowSet类 339

14.2.4 CTable类 340

14.3 Visual C++的OLE DB应用实例 341

14.3.1 创建应用程序 341

14.3.2 显示数据库表 343

14.3.3 显示表定义 344

14.3.4 显示表记录 346

14.4 本章小结 348

第15章 Visual C++中MySQL访问技术(教学视频:10分钟) 349

15.1 MySQL数据库 349

15.2 MyODBC 351

15.2.1 创建ODBC数据源 351

15.2.2 MyODBC应用举例 352

15.3 MySQL C API 353

15.3.1 C API数据类型 353

15.3.2 MySQL C API函数 355

15.3.3 应用程序实例 357

15.3.4 CDatabase类的实现 359

15.3.5 应用CDatabase类 360

15.4 本章小结 361

第4篇 网络编程 364

第16章 Windows套接字编程(教学视频:22分钟) 364

16.1 概述 364

16.1.1 Windows Sockets规范 364

16.1.2 套接字及其分类 364

16.1.3 客户端/服务器模型 365

16.1.4 网络字节顺序 366

16.2 套接字库函数 368

16.2.1 套接字函数 368

16.2.2 数据库函数 369

16.2.3 Windows扩展函数 371

16.3 使用WinSocket API 372

16.3.1 基本Socket系统调用 372

16.3.2 Windows Sockets编程机理 374

16.3.3 面向连接的套接字编程 375

16.3.4 无连接套接字编程 375

16.3.5 原始套接字编程 377

16.4 MFC对WinSocket API的封装 377

16.4.1 CAsyncSocket类 377

16.4.2 使用CAsyncSocket类 378

16.4.3 CSocket类 378

16.4.4 使用CSocket类 379

16.5 MFC WinSocket实例 380

16.6 本章小结 384

第17章 邮槽与管道(教学视频:22分钟) 385

17.1 邮槽 385

17.1.1 邮槽实施细节 385

17.1.2 邮槽服务器 386

17.1.3 邮槽客户端 387

17.1.4 其他的邮槽API 387

17.1.5 邮槽示例 387

17.2 匿名管道 389

17.2.1 匿名管道的实施细节 389

17.2.2 匿名管道程序示例 390

17.3 命名管道 391

17.3.1 命名管道技术概述 391

17.3.2 命名规范及通信模式 392

17.3.3 使用命名管道 393

17.3.4 其他命名管道API 394

17.3.5 命名管道使用实例 395

17.4 本章小结 397

第18章 通信端口编程(教学视频:25分钟) 398

18.1 串行端口通信编程 398

18.1.1 Windows环境下的串口编程 398

18.1.2 串口参数及对资源的申请 399

18.1.3 数据流控制参数 401

18.1.4 对串口资源的申请 403

18.1.5 同步I/O读写数据 405

18.1.6 使用事件驱动机制 405

18.1.7 异步I/O读写数据 407

18.1.8 MS Comm串行通信控件 408

18.2 通信端口编程实例 410

18.2.1 串口线程初始化 410

18.2.2 串口接收线程 411

18.2.3 打开和关闭串口 412

18.2.4 向串口发送数据 413

18.2.5 界面处理 414

18.3 本章小结 416

第19章 Internet编程(教学视频:22分钟) 417

19.1 WinInet编程 417

19.1.1 WinInet API概述 417

19.1.2 WinInet类概述 418

19.1.3 HTTP编程 421

19.1.4 FTP编程 423

19.1.5 Gopher编程 424

19.2 ISAPI编程 426

19.2.1 ISAPI概述 426

19.2.2 ISAPI服务器扩展程序 427

19.2.3 使用应用向导开发ISAPI服务器扩展程序 428

19.2.4 对ISA的调试 429

19.2.5 ISAPI过滤程序 430

19.3 MAPI编程 432

19.3.1 MAPI体系结构概述 432

19.3.2 MAPI应用程序接口 433

19.3.3 使用MAPI编写支持电子邮件的程序 434

19.4 本章小结 436

第5篇 系统编程 438

第20章 系统相关功能开发(教学视频:120分钟) 438

20.1 磁盘信息 438

20.1.1 获取驱动器卷标 438

20.1.2 获取磁盘序列号 439

20.1.3 检测软驱是否有软盘 440

20.1.4 判断是否插入存储器 441

20.1.5 判断光驱是否有光盘 442

20.1.6 判断驱动器类型 443

20.1.7 获取磁盘空间信息 444

20.2 磁盘操作 445

20.2.1 格式化磁盘 445

20.2.2 关闭磁盘共享 447

20.2.3 设置磁盘卷标 448

20.2.4 磁盘碎片整理 448

20.2.5 从FAT32转换为NTFS 449

20.2.6 隐藏磁盘分区 450

20.2.7 显示被隐藏的磁盘分区 450

20.2.8 如何更改分区号 451

20.2.9 如何监视硬盘 452

20.3 系统控制与调用 454

20.3.1 调用外部程序的方法 454

20.3.2 调用创建快捷方式向导 455

20.3.3 访问启动控制面板中的各项 455

20.3.4 控制光驱的弹开与关闭 456

20.3.5 实现关闭、重启、注销和锁定计算机 457

20.3.6 关闭和打开显示器 459

20.3.7 打开和关闭屏幕保护 459

20.3.8 关闭当前输入法 460

20.3.9 程序发出提示音 460

20.3.10 列举系统中的可执行文件 461

20.4 应用程序操作 462

20.4.1 禁止程序重复运行 462

20.4.2 如何确定应用程序没有响应 463

20.4.3 检索任务管理器中的任务列表 464

20.4.4 判断某个程序是否运行 465

20.4.5 怎样在程序中执行DOS命令 466

20.4.6 修改其他进程中对话框的标题 466

20.4.7 如何设计换肤程序 467

20.4.8 PE档案格式分析 468

20.4.9 修改应用程序图标 469

20.4.10 列举应用程序使用的dll文件 469

20.4.11 调用具有命令行参数的应用程序 471

20.4.12 在程序中调用一个子进程直到结束 471

20.5 系统工具 472

20.5.1 为程序添加快捷方式 472

20.5.2 显示系统正在运行的程序 474

20.5.3 如何获得毫秒级时间 475

20.5.4 注册和卸载组件 475

20.5.5 清空回收站 476

20.5.6 如何在程序中显示文件属性对话框 477

20.6 桌面相关 478

20.6.1 获取桌面对话框 479

20.6.2 获取任务栏对话框句柄 479

20.6.3 获取桌面列表视图句柄 480

20.6.4 获取任务栏属性 480

20.6.5 隐藏和显示桌面文件 481

20.6.6 隐藏和显示Windows任务栏 482

20.6.7 隐藏和显示开始按钮 482

20.6.8 隐藏和显示任务栏时钟 483

20.6.9 判断屏幕保护程序是否在运行 484

20.6.10 判断系统是否使用大字体 485

20.6.11 改变桌面背景颜色 486

20.7 系统信息 487

20.7.1 获取CPU ID值 487

20.7.2 获取CPU时钟频率 488

20.7.3 获得Windows和System的路径 488

20.7.4 获取特殊文件夹路径 489

20.7.5 检测系统启动模式 491

20.7.6 判断操作系统类型 492

20.7.7 获取当前系统的运行时间 492

20.7.8 如何获取Windows 2000系统启动时间 493

20.7.9 获取处理器信息 493

20.7.10 检测是否安装声卡 495

20.7.11 获取当前用户名 495

20.7.12 获取系统环境变量 496

20.7.13 修改计算机名称 496

20.7.14 获取当前屏幕颜色质量 497

20.7.15 获得当前屏幕的分辨率 498

20.8 消息 498

20.8.1 如何自定义消息 498

20.8.2 如何向Windows注册消息 499

20.8.3 PostMessage()和SendMessage()函数的区别 500

20.8.4 利用WM_COPYDATA消息实现进程间数据传递 501

20.9 剪贴板 502

20.9.1 列举剪贴板中数据类型 502

20.9.2 监视剪贴板复制过的内容 503

20.9.3 通过剪贴板传递全局数据 505

20.10 鼠标键盘 506

20.10.1 交换鼠标左右键 506

20.10.2 设置鼠标双击的时间间隔 507

20.10.3 获得鼠标键数 508

20.10.4 获取鼠标下窗体句柄 508

20.10.5 模拟鼠标单击按钮 509

20.10.6 在程序中添加快捷键 510

20.10.7 在对话框中使用加速键 510

20.10.8 处理鼠标滚轮消息 511

20.10.9 获取键盘按键 513

20.10.10 获取键盘类型及功能号 513

20.10.11 控制键盘指示灯 515

20.11 本章小结 516

第21章 注册表、INI和XML文件(教学视频:77分钟) 517

21.1 读写注册表的API函数 517

21.1.1 注册表的概念 517

21.1.2 创建带安全属性的注册表项 518

21.1.3 快速创建注册表项 519

21.1.4 打开注册表项 520

21.1.5 判断注册表项是否存在 521

21.1.6 删除注册表项 521

21.1.7 打开注册表根项 522

21.1.8 向指定注册表项默认键值写入数 522

21.1.9 设置注册表键值数据 523

21.1.10 快速设置注册表键值字符串数据 524

21.2 注册表应用 524

21.2.1 保存注册表项 525

21.2.2 开机自动运行 526

21.2.3 隐藏和显示我的电脑 527

21.2.4 隐藏和显示回收站 527

21.2.5 隐藏显示所有驱动器 528

21.2.6 禁止“查找”菜单 529

21.2.7 禁止“文档”菜单 529

21.2.8 在退出WINDOWS时清除“文档”中的记录 530

21.2.9 禁用注册表编辑器 530

21.2.10 禁止使用inf文件 531

21.2.11 禁止使用reg文件 532

21.2.12 显示隐藏文件或文件夹 532

21.3 读写注册表的ATL类 533

21.3.1 使用CregKey类写入默认键值 533

21.3.2 使用CRegKey类写入新键值 534

21.3.3 使用CRegKey类查询键值 535

21.4 注册表的查询与枚举 536

21.4.1 查询注册表键值信息 536

21.4.2 快速查询注册表键值信息 537

21.4.3 枚举注册表键值 538

21.4.4 列举注册表中启动项 538

21.4.5 两个API函数可以枚举注册表项 539

21.4.6 枚举安装程序 540

21.5 INI文件的读写函数 541

21.5.1 向INI文件中指定键值写入字符串数据 541

21.5.2 获取INI文件中指定键值下整型数据 542

21.5.3 获取INI文件中指定键值下字符串数据 543

21.5.4 向INI文件中写入结构数据 544

21.5.5 获取INI文件中结构数据 545

21.5.6 向INI文件指定节下写入数据 546

21.5.7 获取INI文件中所有节名 547

21.5.8 获取INI文件指定节下的键名及数据 548

21.6 XML文件操作 549

21.6.1 XML文件简介 549

21.6.2 XML文件的优势 550

21.6.3 读取XML文件内容 550

21.6.4 向XML文件中写入内容 552

21.7 本章小结 552

第22章 动态链接库编程(教学视频:37分钟) 553

22.1 基本概念 553

22.1.1 动态链接库的概念 553

22.1.2 动态链接库的优点 554

22.1.3 Visual C++ 6.0可开发的DLL 555

22.1.4 DLL文件的组成 556

22.2 DLL的创建与使用实例 557

22.2.1 Win32 DLL的创建 557

22.2.2 DLL的导出 558

22.2.3 应用程序链接DLL 559

22.2.4 动态链接库函数 560

22.2.5 从动态库中获取位图资源 562

22.2.6 枚举模块中的所有图标 564

22.2.7 使用模块对话框资源 565

22.2.8 替换应用程序中对话框资源 566

22.2.9 屏蔽键盘Power键 568

22.2.10 屏蔽键盘Win键 569

22.2.11 禁止使用<Alt+F4>键关闭窗体 570

22.3 MFC常规DLL的创建与使用实例 570

22.3.1 基本概念 570

22.3.2 MFC常规DLL的创建 571

22.3.3 MFC常规DLL的创建实例 572

22.3.4 MFC常规DLL的调用 572

22.4 MFC扩展DLL的创建与使用实例 573

22.4.1 MFC扩展DLL的创建 573

22.4.2 MFC扩展DLL的创建实例 574

22.4.3 MFC扩展DLL的调用 575

22.5 DLL的查看与调试 575

22.5.1 使用Depends工具查看DLL接口 575

22.5.2 DLL的调试 576

22.6 本章小结 577

第23章 多线程编程(教学视频:44分钟) 578

23.1 多线程的引入 578

23.1.1 单线程程序的不足 578

23.1.2 问题的解决 579

23.2 进程和线程 579

23.2.1 Spy++工具 579

23.2.2 Win32 API对多线程编程的支持 581

23.2.3 MFC对多线程编程的支持 582

23.3 多线程程序开发方法 582

23.3.1 使用Win32 API函数开多线程程序 582

23.3.2 MFC用户界面线程的开发 583

23.3.3 MFC工作者线程的开发 584

23.3.4 挂起线程 585

23.3.5 终止线程的方法 587

23.3.6 使线程处于睡眠状态 588

23.3.7 启动记事本并控制其关闭 589

23.3.8 调用记事本程序并暂停其运行 590

23.3.9 等待打开的记事本程序关闭 591

23.3.10 创建闪屏线程 591

23.4 线程间的通信 592

23.4.1 使用全局变量实现线程间的通信 592

23.4.2 使用自定义的消息实现线程间的通信 593

23.5 线程的同步 594

23.5.1 等待函数 594

23.5.2 利用事件对象实现线程同步 596

23.5.3 使用事件对象实现线程同步实例 596

23.5.4 利用临界区实现线程同步 598

23.5.5 利用临界区实现线程同步实例 599

23.5.6 利用信号量实现线程同步 600

23.5.7 利用信号量实现线程同步实例 601

23.5.8 利用互斥对象实现线程同步 603

23.5.9 利用互斥对象实现线程同步实例 604

23.6 多线程程序实例 605

23.7 本章小结 607

第6篇 多媒体开发 610

第24章 文本字体技术(教学视频:25分钟) 610

24.1 字体对象 610

24.1.1 字体要素 610

24.1.2 字体对象的创建 611

24.1.3 获取字体信息 612

24.1.4 字体对象使用实例 613

24.2 字体效果 613

24.2.1 如何设计空心字 614

24.2.2 渐变颜色的字体 614

24.2.3 获取路径信息点 615

24.2.4 文字跟随鼠标 616

24.2.5 如何实现旋转字体 616

24.2.6 文字水平滚动 617

24.2.7 字体垂直滚动 618

24.2.8 设计3D立体文字 619

24.3 本章小结 620

第25章 图形与图像编程(教学视频:60分钟) 621

25.1 位图和区域对象 621

25.1.1 设备相关位图(DDB) 621

25.1.2 CBitmap应用实例 622

25.1.3 设备无关位图(DIB) 623

25.1.4 区域对象(CRgn) 623

25.1.5 CRgn应用实例 624

25.2 使用画笔和画刷进行绘图 624

25.2.1 画笔对象及其使用 625

25.2.2 使用画笔绘图实例 626

25.2.3 画刷对象及其使用 626

25.2.4 使用画刷绘图实例 627

25.3 图像基础技术 628

25.3.1 如何使用GDI+ 628

25.3.2 如何创建含有位图的画刷 629

25.3.3 保存屏幕抓图文件 630

25.3.4 利用内存画布防止绘图时出现屏幕闪烁 631

25.3.5 创建几何画笔 632

25.3.6 绘制网格 633

25.3.7 创建不同的画刷 634

25.3.8 填充矩形区域 635

25.3.9 模拟时钟 636

25.3.10 颜色渐变算法 637

25.3.11 如何绘制渐变颜色 638

25.3.12 图元文件的保存与打开 639

25.3.13 图像居中显示 640

25.3.14 图片融合效果 641

25.3.15 保存设备上下文 642

25.4 特殊曲线 643

25.4.1 绘制蜗牛线 643

25.4.2 绘制贝塞尔曲线 644

25.4.3 绘制正弦曲线 645

25.5 图像特效 646

25.5.1 图像锐化处理 646

25.5.2 图像柔化处理 647

25.5.3 图像反色处理 649

25.5.4 图像灰度处理 650

25.5.5 图像浮雕效果 651

25.5.6 图像翻转 652

25.5.7 图像缩放 653

25.5.8 图片剪切 653

25.5.9 图片马赛克效果 654

25.5.10 水平百叶窗显示图片 655

25.5.11 垂直百叶窗显示图片 656

25.6 图像控制 657

25.6.1 在图片上绘制线条 657

25.6.2 在图片上绘制网格 658

25.6.3 打开高颜色质量图像 659

25.6.4 创建最顶层窗体 660

25.6.5 在视图中拖动图片 661

25.6.6 屏幕截图 662

25.6.7 保存屏幕图像到剪贴板 663

25.6.8 获取图像RGB值 664

25.6.9 显示Word艺术字 665

25.6.10 渐隐渐显的图像 665

25.6.11 保留椭圆中图片内容 666

25.6.12 去除椭圆下的图片内容 667

25.7 本章小结 669

第26章 声音与动画编程(教学视频:28分钟) 670

26.1 多媒体声音控制 670

26.1.1 简单声音录制与播放 670

26.1.2 可以选择播放曲目的CD播放器 673

26.1.3 控制音量 674

26.1.4 利用PC喇叭播放声音 675

26.1.5 定时播放WAV文件 675

26.1.6 调用MIDI文件播放程序 675

26.1.7 开发具有记忆功能的MP3播放器 676

26.2 多媒体应用 677

26.2.1 滚动字体的屏幕保护 677

26.2.2 相册屏幕保护程序 679

26.2.3 设计画图程序 679

26.3 动画效果 681

26.3.1 标题栏动画图标 681

26.3.2 通过DrawIcon()函数实现图标动画 681

26.3.3 系统托盘动态图标 682

26.4 多媒体文件的播放 683

26.4.1 播放GIF动画 684

26.4.2 播放Flash动画 684

26.4.3 播放RM文件 685

26.4.4 播放VCD 686

26.4.5 显示JPEG图像 687

26.5 本章小结 688

第27章 DirectX图形开发(教学视频:46分钟) 689

27.1 DirectX SDK的安装与配置 689

27.1.1 DirectX SDK的安装 689

27.1.2 VC 6.0中SDK的配置 690

27.1.3 启用DirectX3D 691

27.2 DirectX 9.0介绍 693

27.2.1 DirectX组件介绍 693

27.2.2 DirectX应用程序向导 694

27.2.3 使用COM 695

27.3 DirectX图形开发基本概念 696

27.3.1 世界坐标系 696

27.3.2 摄影坐标系 696

27.3.3 剪裁和透视投影 696

27.3.4 视口变换和像素的光栅显示 697

27.3.5 显示卡的3D渲染管道线 698

27.4 基本三角形面的绘制 699

27.4.1 DirectX Graphics基本应用架构 699

27.4.2 创建IDirect3D9接口对象 700

27.4.3 创建Direct3D设备 700

27.4.4 创建顶点缓冲区 701

27.4.5 启动管道流水线进行渲染 702

27.4.6 实例——绘制一个基本的三角形面 703

27.5 基本立体面的绘制 706

27.5.1 3D原始类型 706

27.5.2 背面剔除和顶点顺序 709

27.5.3 顶点索引缓冲区 709

27.5.4 在世界坐标系中放置物体 710

27.5.5 架设摄影机进行取景和投影 710

27.5.6 屏幕视口的设置 711

27.5.7 实例——绘制一个基本的立体面 711

27.6 材质和光照处理 714

27.6.1 颜色与光照 715

27.6.2 光源设置 716

27.6.3 点光源 717

27.6.4 聚焦光源 717

27.6.5 方向光源 717

27.6.6 材质设置 718

27.6.7 顶点的法向量 719

27.7 纹理贴图 720

27.7.1 顶点的纹理坐标 720

27.7.2 创建纹理对象 720

27.7.3 纹理过滤技术 722

27.7.4 纹理地址模式 723

27.8 Alpha颜色混合 723

27.8.1 颜色混合原理 723

27.8.2 Alpha颜色混合例子 725

27.8.3 利用ID3DXSprite实现颜色透明 725

27.8.4 利用Alpha测试实现颜色透明 726

27.9 XFile网格的应用 727

27.9.1 .x文件的基本格式 727

27.9.2 .x文件的数据装入 730

27.9.3 Mesh数据的处理 731

27.9.4 Mesh数据的优化 731

27.10 本章小结 732

第7篇 项目开发实战 734

第28章 网络音频播放系统(教学视频:71分钟) 734

28.1 系统分析与设计 734

28.1.1 功能描述 734

28.1.2 功能模块设计 734

28.2 界面实现 735

28.2.1 界面设计 735

28.2.2 界面初始化 736

28.2.3 界面代码 737

28.3 核心实现 742

28.3.1 线程同步类 742

28.3.2 音频驱动函数 743

28.3.3 CAudioPlay类的声明 746

28.3.4 音频播放器初始化 748

28.3.5 音频采样处理 749

28.3.6 音频输出实现 753

28.3.7 打开音频文件 754

28.3.8 停止音频播放 756

28.3.9 暂停音频和继续音频 757

28.3.10 获取音频属性 757

28.4 程序运行效果 760

28.5 本章小结 760

第29章 GPS定位系统(教学视频:58分钟) 761

29.1 GPS监控系统概况 761

29.1.1 GPS监控系统概述 761

29.1.2 GPS监控系统的系统架构 762

29.2 GPS数据通信协议NEMA01 83协议 764

29.2.1 配置参数及协议格式 764

29.2.2 NEMA0183标准语句 765

29.2.3 GARMIN定义的语句 767

29.2.4 NEMA0183协议的TEXT文本格式 769

29.3 串口接收GPS信息程序设计 770

29.3.1 实例背景 770

29.3.2 硬件接线说明 771

29.3.3 GPS模块与串口的通信协议 771

29.3.4 程序功能 771

29.3.5 界面设计 772

29.3.6 结构声明 774

29.3.7 初始化操作 777

29.3.8 GPS数据接收的实现方法 778

29.3.9 GPS数据解析的实现方法 781

29.3.10 多线程串口工作方式 788

29.3.11 发送命令 796

29.3.12 结束清理 797

29.3.13 地图支持 798

29.3.14 程序测试截图 800

29.4 本章小结 801

附录A Visual C++ 6.0菜单项 802

附录B CL的编译选项 818