《Visual C++开发宝典》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:匡松,李强主编
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2009
  • ISBN:9787113105419
  • 页数:617 页
图书介绍:本书是一本基础精炼、实例丰富的Visual C++开发类宝典。

第1篇 开发基础篇 2

第1章 Visual C++6.0开发环境 2

1.1 Visual C++6.0概述 2

1.2 认识Visual C++集成开发环境 3

1.3 IDE菜单栏介绍 5

1.4 工具栏 12

1.5 输出窗口 13

1.6 资源编辑器 13

1.7 Visual C++学习常见问题 14

1.8 Visual C++学习方法简介 16

小结 17

第2章 利用集成开发环境生成程序 18

2.1 生成项目(project) 18

2.2 添加和编辑源文件 19

2.3 建立程序 20

2.4 运行程序 21

2.5 调试程序 21

2.6 Visual C++生成的项目文件 22

2.7 编写控制台应用程序 23

小结 25

第3章 Windows程序运行原理 26

3.1 图形界面操作系统的王者——Windows 26

3.2 什么是多任务操作系统 26

3.3 Windows应用程序的组成 28

3.4 建立API的概念 29

3.4.1 API的发展 29

3.4.2 标准Win32 API函数分类 30

3.5 一个用API编写的Windows程序 30

3.6 Visual C++应用程序开发框架:MFC 36

3.6.1 从API到MFC 36

3.6.2 MFC是一个编程框架 36

小结 37

第4章 开始使用MFC类库 38

4.1 MFC的起源和发展 38

4.2 MFC整体类库结构 39

4.3 常用MFC类简介 40

4.3.1 应用程序结构类 40

4.3.2 调试和异常类 41

4.3.3 文件服务类 41

4.3.4 图形处理类 42

4.3.5 数据库类 42

4.3.6 Internet支持类 42

4.4 一个简单的MFC程序 42

4.5 文档/视图结构 45

4.5.1 文档类 45

4.5.2 视图类 46

4.5.3 使用文档/视图结构的好处 47

4.5.4 单文档(SDI)与多文档(MDI)应用程序 47

4.6 窗口类及其控件栏 49

4.6.1 子窗口类 49

4.6.2 主窗口类 50

4.6.3 工具栏 50

4.6.4 状态栏 51

4.7 MFC创建的完整应用程序实例 51

小结 56

第5章 菜单与加速键 57

5.1 消息与事件 57

5.1.1 事件驱动机制 57

5.1.2 消息和消息映射 59

5.1.3 消息处理过程 61

5.2 菜单和加速键的创建 62

5.2.1 菜单的创建 62

5.2.2 加速键的创建 65

5.3 添加菜单所需的处理函数 66

5.3.1 添加普通菜单的处理函数 66

5.3.2 添加弹出式菜单的处理函数 67

5.4 加载加速键 71

小结 71

第6章 AppWizard和ClassWizard 72

6.1 一个简单应用程序的创建 72

6.1.1 MFC AppWizard 72

6.1.2 ClassWizard 72

6.1.3 程序实例 73

6.2 程序调试 78

6.2.1 创建调试实例程序 78

6.2.2 调试器 80

小结 83

第7章 在Windows中绘制图像 84

7.1 绘图的基础知识 84

7.1.1 映射模式 85

7.1.2 设备上下文 85

7.2 图形设备接口(GDI) 85

7.2.1 设备环境类(CDC) 85

7.2.2 GDI对象 86

7.3 简单图形的绘制 87

7.3.1 屏幕绘图的主要函数 87

7.3.2 图形绘制基本原则 88

7.3.3 画笔 89

7.3.4 画刷 91

小结 94

第2篇 关键控件篇(MFC) 96

第8章 常用界面控件 96

8.1 静态文本(Static Text)控件 96

8.1.1 传统控件通知消息 96

8.1.2 静态控件的使用 97

8.1.3 CStatic类的主要成员函数 99

8.2 文本编辑(Edit Box)控件 100

8.2.1 文本编辑控件的使用 100

8.2.2 CEdit类的主要成员函数 101

8.3 滚动条(Scroll Bar)控件 102

8.3.1 滚动条控件的使用 102

8.3.2 CScrollBar类的主要成员函数 104

8.4 按钮控件 104

8.4.1 按钮控件的使用 105

8.4.2 CButton类的主要成员函数 108

8.5 列表框(List Box)控件 109

8.5.1 列表框控件的使用 109

8.5.2 ClistBox类的主要成员函数 111

8.6 组合框(Combo box)控件 112

8.7 图片(Picturre)控件 113

8.8 列表(List Ctrl)控件 115

8.8.1 Win 32新型控件概述 115

8.8.2 列表控件的使用 116

8.8.3 ClistCtrl类的主要成员函数 117

8.9 树形(Tree Ctrl)控件 117

8.9.1 树形控件的使用 117

8.9.2 CTreeCtrl类的主要成员函数 118

8.9.3 树形控件的通知消息 119

8.10 选项卡(Tab Ctrl)控件 119

8.10.1 选项卡控件的使用 119

8.10.2 选项卡控件通知消息 120

8.10.3 选项卡控件的使用 120

8.11 应用实例:进制转换计算器 121

8.11.1 进制转换计算器功能概述 121

8.11.2 实例具体实现步骤 122

小结 129

第9章 文本和字体类 130

9.1 基础知识介绍 130

9.2 CFont类 131

9.3 文本输出过程 136

9.4 字体和文本输出实例 137

9.5 根据数据绘制相应的柱状图 140

9.6 根据坐标绘制三角形 143

小结 147

第10章 对话框 148

10.1 对话框的创建 148

10.1.1 对话框的创建流程 148

10.1.2 创建对话框资源 149

10.1.3 对话框窗口布局 150

10.1.4 创建对话框类和菜单栏制作 151

10.2 模态对话框 152

10.3 非模态对话框 153

10.4 功能代码实现 155

10.5 属性页对话框 157

10.5.1 主要相关类介绍 158

10.5.2 一般属性页对话框的创建步骤 159

10.5.3 向导对话框的创建步骤 163

10.6 通用对话框 167

10.6.1 打印设置对话框 167

10.6.2 页面设置对话框 168

10.6.3 查找对话框 168

10.6.4 文件对话框 169

10.6.5 字体对话框 170

10.6.6 颜色对话框 171

10.7 消息对话框 171

10.7.1 MessageBox()函数 172

10.7.2 AfxMessageBox()函数 172

10.8 菜单和对话框综合实例 173

10.8.1 实例描述 173

10.8.2 实例实现步骤 173

10.8.3 编写关键代码 177

10.8.4 开发经验总结与提高练习 180

小结 181

第11章 文件操作 182

11.1 串行化的基本原理 182

11.1.1 文档类 183

11.1.2 Serialize()函数 184

11.1.3 CArchive类 187

11.1.4 串行化实例 188

11.2 文件CFile类 199

11.2.1 打开操作 199

11.2.2 读写操作 201

11.2.3 定位操作 202

11.2.4 关闭操作 202

11.2.5 异常操作 204

11.2.6 管理操作 205

11.3 文件对话框 206

11.3.1 多选文件对话框 206

11.3.2 重载文件对话框 207

小结 211

第12章 学生成绩管理系统 212

12.1 学生成绩管理系统功能描述 212

12.2 项目的建立 212

12.3 关键类的创建及实现 213

12.4 开发“添加记录”对话框 225

12.5 设计“删除记录”对话框及其相应的功能 229

12.6 添加“查找记录”对话框 231

12.7 添加菜单 233

小结 237

第3篇 深入学习篇 240

第13章 动态链接库 240

13.1 动态链接库的基础知识 240

13.2 DLL的出入口函数 241

13.2.1 DllMain()函数 241

13.2.2 DLL的导出函数 242

13.3 两种链接DLL的方式 242

13.3.1 隐式链接 243

13.3.2 显式链接 245

13.4 开发DLL 246

13.4.1 创建Non-MFC Dll动态链接库 246

13.4.2 MFC AppWizard[dll]方式生成常规/扩展DLL 248

13.4.3 导出函数调用约定 248

13.4.4 模块定义文件(DEF) 250

13.5 在动态链接库中使用资源 250

13.6 界面汉化示例 253

13.7 使用钩子(Hook)函数 255

13.7.1 钩子函数的类型 255

13.7.2 使用钩子函数 257

13.7.3 鼠标钩子应用实例 258

13.7.4 键盘钩子应用实例 261

小结 265

第14章 多线程 266

14.1 多线程的基本概念 266

14.2 两种重要的线程 266

14.2.1 工作者线程 266

14.2.2 用户界面线程 267

14.3 线程的操作 268

14.3.1 线程的创建 268

14.3.2 线程的终止 269

14.3.3 线程的管理和操作 270

14.3.4 线程的同步 276

小结 279

第15章 网络编程 280

15.1 网络编程的基础知识 280

15.1.1 Socket简介 280

15.1.2 Windows套接字规范简介 281

15.2 网络应用程序基本规范 282

15.2.1 网络应用程序的基本模型 282

15.2.2 初始化 283

15.2.3 建立套接字对象 284

15.2.4 绑定地址与端口 284

15.2.5 建立通信连接 284

15.2.6 数据传输 285

15.3 WinSock类 285

15.3.1 CAsyncSocket类 285

15.3.2 CSocket类 287

15.4 客户端/服务器网络程序设计 287

15.4.1 网络编程的基本任务 287

15.4.2 客户端程序的实现 288

15.4.3 服务器端程序的实现 291

小结 294

第16章 数据库开发技术 295

16.1 概述 295

16.1.1 数据库相关技术介绍 295

16.1.2 数据库应用程序的开发步骤 297

16.1.3 选择数据库管理系统的原则 298

16.2 设计、创建和维护Access数据库 299

16.2.1 创建Access数据库 299

16.2.2 创建数据表 299

16.2.3 设计和修改数据表的结构 301

16.2.4 设置表之间的关系 302

16.2.5 编辑和管理数据表记录 303

16.3 标准的SQL语句 303

16.3.1 基本的SQL语句 304

16.3.2 数据表的联合查询技术 305

16.4 ADO的技术特点 307

16.4.1 数据库访问接口介绍 307

16.4.2 ADO的特点 307

16.5 ADO的对象和集合 307

16.5.1 连接对象 308

16.5.2 命令对象 309

16.5.3 记录集对象 310

16.5.4 ADO的集合 313

16.6 数据库操作 315

16.6.1 动态链接库的引入和COM库的初始化 315

16.6.2 ADO与数据库的连接 316

16.6.3 获得和遍历记录集 317

16.6.4 对记录的操作 317

16.7 利用ADO查询并操作数据库实例 319

小结 322

第4篇 专业项目开发篇 324

第17章 电子元器件绘制系统 324

17.1 系统背景 324

17.1.1 坐标变换和映射模式 324

17.1.2 OnPaint()和OnDraw() 326

17.2 序列化 327

17.2.1 序列化概念 327

17.2.2 序列化机制 328

17.2.3 实现类的序列化 328

17.2.4 文档/视图架构程序中数据的序列化 329

17.3 电子元器件绘制系统的需求分析 331

17.3.1 绘制功能 331

17.3.2 图形编辑功能 332

17.3.3 器件属性的编辑 333

17.4 电子绘制系统分析与详细设计 333

17.4.1 业务过程分析 334

17.4.2 抽象出来的类(类图) 335

17.4.3 其他的数据结构 342

17.4.4 器件示意图的外观比例设计 342

17.5 重点功能实现方法 344

17.5.1 绘制器件图 344

17.5.2 选择器件图 347

17.5.3 器件图的放大/缩小、单个器件图的移动 352

17.5.4 器件图的Z_Order顺序调整 353

17.5.5 复制/粘贴 354

17.5.6 鼠标形状的改变 357

17.5.7 截获Windows的消息实现多个器件图的移动 358

17.5.8 理解CObList类,以防内存泄漏 360

17.6 进阶与提高 361

小结 363

第18章 统一数据库管理系统 364

18.1 统一数据库管理系统的开发背景 364

18.2 统一数据库管理平台的用户需求 364

18.2.1 数据表管理功能 365

18.2.2 视图管理功能 366

18.2.3 存储过程管理功能 366

18.2.4 数据操作功能 367

18.2.5 SQL操作功能 368

18.3 统一数据库管理平台的分析与设计 368

18.3.1 数据库管理功能分析和设计 368

18.3.2 系统的数据结构 373

18.3.3 统一数据库管理平台的主界面 375

18.4 重点代码讲解 375

18.4.1 取得数据库的结构 375

18.4.2 动态创建数据源 379

18.4.3 创建数据库 381

18.4.4 删除数据库 382

18.4.5 存储过程的相关操作 382

18.4.6 显式调用外部DLL 383

18.4.7 取得数据库对象的脚本 384

18.4.8 Explorer风格窗口 386

18.4.9 树控件 388

18.5 安装与配置 394

小结 395

第19章 考勤系统 396

19.1 用MFC DAO的方法访问数据库 396

19.1.1 MFC DAO类 397

19.1.2 数据库操作 397

19.1.3 表操作 398

19.1.4 记录集操作 398

19.2 MFC中的动态数据交换机制 401

19.3 结构化异常处理 404

19.3.1 结构化异常处理机制(SEH) 404

19.3.2 MFC中的异常类 406

19.4 需求分析说明 409

19.4.1 签到功能 409

19.4.2 查询功能 410

19.4.3 修改功能 410

19.4.4 系统配置功能 411

19.4.5 员工维护 411

19.4.6 用户登录 411

19.4.7 系统用户维护 411

19.5 系统分析与数据库设计 411

19.5.1 数据库设计 412

19.5.2 类设计 413

19.6 重点功能实现代码 413

19.6.1 改变对话框中控件的字体 413

19.6.2 取得记录集对象的记录个数 416

19.6.3 登录对话框实现 417

19.6.4 用户权限决定可使用的功能(菜单的控制) 418

19.6.5 CTime类在签到功能中的使用 420

19.6.6 查询某个员工某个时间段的出勤情况 426

19.6.7 修改出勤功能实现 429

19.6.8 员工维护 430

19.6.9 系统配置维护 433

19.6.10 用户管理 434

小结 436

第20章 网络信使系统 437

20.1 XML DOM技术基本知识 437

20.1.1 XML概述 437

20.1.2 DOM接口 438

20.1.3 创建DOM文档对象 439

20.1.4 加载XML文档 439

20.1.5 遍历XML文档 440

20.2 网络信使需求分析 441

20.2.1 在线朋友维护 441

20.2.2 聊天功能 442

20.2.3 文件传输拖动功能 443

20.2.4 查看历史信息 443

20.3 分析与设计 443

20.3.1 类设计 444

20.3.2 XML方式的数据格式 452

20.3.3 在线朋友数据结构 453

20.4 重点代码讲解 453

20.4.1 读取系统配置和用户配置XML文件 453

20.4.2 UDP广播实现朋友上线 456

20.4.3 朋友下线通知 461

20.4.4 XML聊天报文发送 463

20.4.5 聊天报文接收 468

20.4.6 查看聊天历史记录 470

20.4.7 文件发送 472

20.4.8 文件接收 476

20.4.9 拖动文件实现 477

小结 478

第21章 软件在线升级系统 479

21.1 COM基本知识 479

21.1.1 COM的特点 479

21.1.2 COM接口 480

21.1.3 IUnknown接口 483

21.1.4 类厂(class factory) 486

21.2 用ATL编写COM 487

21.2.1 C++中的模板 488

21.2.2 智能指针 489

21.2.3 ATL的智能指针 491

21.3 WinInet API中与HTTP相关的函数 492

21.3.1 HTTP的工作方式 493

21.3.2 HTTP客户请求 494

21.3.3 HTTP客户获取服务器的响应信息 496

21.4 MFC WinInet类 497

21.4.1 CInternetSession类 497

21.4.2 连接类 499

21.4.3 文件类 500

21.4.4 文件查找 504

21.5 软件在线升级系统的用户需求 504

21.5.1 初始下载界面 504

21.5.2 下载应用系统安装程序 505

21.5.3 安装应用系统 505

21.5.4 检查当前服务器上的版本号 505

21.5.5 更新应用系统 506

21.6 软件在线升级系统的分析与设计 506

21.6.1 IE瘦客户端 506

21.6.2 Web+Active X 506

21.6.3 应用程序端 508

21.6.4 Web页面 508

21.7 重点代码讲解 509

21.7.1 工程创建和IUpgradeAtx接口 509

21.7.2 判断程序是否已经存在 513

21.7.3 远程FTP下载 514

21.7.4 启动安装 517

21.7.5 COM组件在IE中显示进度 517

21.7.6 Active X的安装与压缩cabarc 518

21.7.7 对Cab文件进行数字签名 519

21.7.8 网页的编写 519

21.7.9 服务器方提供当前最新的版本号 521

小结 521

第22章 五笔编码速查系统 522

22.1 需求分析说明 522

22.1.1 五笔编码查询功能 522

22.1.2 在线升级 523

22.1.3 快捷键呼叫功能 523

22.1.4 最小化到通知区 523

22.1.5 指定汉字输入法 524

22.2 系统分析与设计 524

22.2.1 五笔编码查询设计 524

22.2.2 在线检查升级设计 524

22.3 重点功能实现代码 525

22.3.1 五笔编码查询 525

22.3.2 在线升级 527

22.3.3 修改PropertySheet窗口风格 530

22.3.4 给PropertySheet加入菜单 531

22.3.5 拦截PropertySheet的内定动作 532

22.3.6 加入快捷键支持 533

22.3.7 最简单的自定义消息框MessageBoxIndirect 535

22.3.8 通知区功能 536

22.3.9 控制系统单一运行实例 538

22.3.10 选择和激活输入法 539

22.3.11 保存系统配置 541

小结 542

第23章 流媒体计费系统 543

23.1 需求分析说明 543

23.1.1 授权 543

23.1.2 计费 544

23.1.3 内容翻转 544

23.1.4 限制连接数量 545

23.1.5 支持多个收费目录 545

23.2 系统分析与设计 545

23.2.1 架构选择与设计 545

23.2.2 授权功能 546

23.2.3 计费功能 548

23.2.4 限制和翻转播放内容 548

23.3 重点功能实现代码 549

23.3.1 Helix Universal Server开发环境 549

23.3.2 编写Helix Universal Server插件 549

23.3.3 限制和翻转播放内容 551

23.3.4 建立定时器控制 556

23.3.5 进行授权请求 558

23.3.6 进行计费请求 566

23.3.7 创建常用对象IRMAValues和IRMABuffer 569

23.3.8 自定义插件描述信息 570

23.3.9 从连接中得到Cookie 571

23.3.10 使用UDP进行通信 572

小结 574

第24章 停车场管理系统 575

24.1 Visual C++实现串口通信 575

24.1.1 串口通信概述 575

24.1.2 控件的方法实现串口通信 576

24.1.3 标准通信函数的方法实现串口通信 580

24.1.4 文件的方法实现串口通信 580

24.2 需求分析说明 589

24.3 系统分析与设计 591

24.3.1 数据库设计 591

24.3.2 进入停车场 593

24.3.3 条形码支持 593

24.3.4 收费 594

24.3.5 智能报价 594

24.3.6 LED电子显示屏 595

24.4 重点功能实现代码 595

24.4.1 串口通信 595

24.4.2 使用视频设备 601

24.4.3 在Visual C++中隐式调用DLL 604

24.4.4 系统配置信息 605

24.4.5 同步客户机和服务器上的时间 608

24.4.6 智能报价 610

24.4.7 条码打印 612

24.4.8 自定义动画播放 614

小结 617

第2章 利用集成开发环境生成程序 18

【实例】一个简单的控制台应用程序:运行程序后,会自动打开一个对话框,上面显示“HELLO!”字样 23

第3章 Windows程序运行原理 26

【实例】一个用API编写的Windows应用程序。 30

第4章 开始使用MFC类库 38

【实例4.1】第一个MFC类创建的程序:使用MFC创建一个Windows应用程序,其作用是生成并打开一个空白窗口。 42

【实例4.2】一个简单的单文档或多文档应用程序。 48

【实例4.3】用MFC方法来实现一段“hello wor1d”程序:产生一个窗口,在窗口中显示hello world字样。 51

第5章 菜单与加速键 57

【实例】编写一个菜单程序,当用户按下一个标识为“PushMe”的菜单时,弹出一个带有“谢谢你,你已进入了一个全新的学习阶段,祝你学习开心!”的消息框。 57

第6章 AppWizard和ClassWizard 72

【实例6.1】编写一个简单的实例程序,要求Example程序编写完成后的运行画面如图6-1所示。 73

【实例6.2】调试实例:为了更好地介绍调试技术,我们需要建立一个程序Example。 78

第7章 在Windows中绘制图像 84

【实例】绘制简单折线图。 91

第9章 文本和字体类 130

【实例9.1】使用成员函数CreateFont()来创建CFont对象并绘制文本“中国欢迎您”。 132

【实例9.2】使用成员函数CreateFontIndirect(),通过LOGFONT结构来创建CFont对象并绘文本“中国欢迎您”。 134

【实例9.3】使用CreateFont()函数和TextOut()函数自定义逻辑字体并输出。 137

【实例9.4】使用CreateFontIndirect()函数和DrawText()函数自定义逻辑字体并输出 139

第11章 文件操作 182

【实例11.1】将数据串行化到一个文件。 182

【实例11.2】创建电话簿并保存信息。 188

【实例11.3】CFile类实现文件的打开操作。 199

【实例11.4】异常处理代码。 201

【实例11.5】Close()函数使用实例。 203

【实例11.6】Abort()函数使用实例。 203

【实例11.7】TRY/CATCH块获得文件异常信息的示例代码。 205

【实例11.8】创建一个可以多选的文件对话框。 207

【实例11.9】重载文件对话框。 207

第13章 动态链接库 240

【实例13.1】通过隐式链接调用MyDll.dll库中的Min函数 243

【实例13.2】在动态链接库中方便地使用资源 251

【实例13.3】界面汉化系统。 253

【实例13.4】鼠标钩子应用实例。 258

【实例13.5】键盘钩子应用实例。 261

第14章 多线程 266

【实例14.1】创建工作者线程。 268

【实例14.2】唤醒线程实例。 269

【实例14.3】在线程函数中调用AfxEndThread()函数终止线程。 269

【实例14.4】安全地使用CWinThread对象。 270

【实例14.5】演示不同优先级的线程工作情况,用绘制矩形的方法来显示执行快慢。 271

【实例14.6】线程挂起和恢复。 273

【实例14.7】用CCriticalSection保护堆栈数据。 277

【实例14.8】用CEven控制线程运行顺序。 278

【实例14.9】利用CMutex类实现和CCriticalSection相同的功能。 279