《精通MFC程序设计》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:姚领田编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2006
  • ISBN:7115149135
  • 页数:715 页
图书介绍:本书介绍了使用VC++开发环境下MFC库的具体使用方法。

1.1 认识MFC 1

1.1.1 MFC的产生与发展 1

第1章 理解MFC程序设计的概念 1

1.1.2 Win32的基本概念 2

1.2 Win32程序设计概述 3

1.1.3 MFC与Win32的关系 3

1.3.1 MFC特性 4

1.3 MFC程序设计概述 4

1.3.2 MFC程序设计思想 5

1.3.4 MFC的全局函数与宏 7

1.3.3 MFC类库层次 7

1.4 小结 9

1.3.5 MFC数据类型 9

2.1 开发环境 10

第2章 Visual C++集成开发环境 10

2.2 IDE菜单介绍 11

2.3.1 资源编辑器 13

2.3 资源与资源编辑器 13

2.3.2 对话编辑器 14

2.3.3 串编辑器 15

2.3.5 版本信息编辑器 16

2.3.4 加速键编辑器 16

2.4.1 环境变量 17

2.4 环境变量与编译模式 17

2.3.6 图形编辑器 17

2.5 小结 18

2.4.2 编译模式 18

3.1.1 封装的概念 19

3.1 封装 19

第3章 C++特性 19

3.1.2 封装的实例 20

3.2.1 继承的概念 21

3.2 继承 21

3.2.2 继承的实例 22

3.3 多态和虚函数 25

3.3.2 多态实例分析 26

3.3.1 多态、虚函数概念 26

3.4.1 RTTI的基本概念 29

3.4 RTTI——运行时类型信息 29

3.4.2 RTTI的实现实例 31

3.5 小结 33

4.1 MFC类库 34

第4章 MFC应用结构 34

4.1.2 窗口、对话框、控件类 35

4.1.1 CObject类 35

4.1.4 简单数据类型类 39

4.1.3 设备上下文、图形设备接口类 39

4.1.5 数组、链表、映射类 42

4.1.6 文件、数据库类 43

4.1.7 Internet和网络类 45

4.1.9 MFC应用结构类 46

4.1.8 调试和异常类 46

4.1.10 CRuntimeClass结构 47

4.2.1 SDI或MDI应用的生成 49

4.2 一个简单的MFC应用程序 49

4.1.11 其他类 49

4.3 MFC工程的成员类及全局对象 52

4.2.2 基于对话框应用的生成 52

4.4.1 文件一览 53

4.4 工程中的文件 53

4.4.2 源文件结构 54

4.4.3 关于文件的补充说明 58

4.5 MFC应用开发 59

4.6 小结 60

5.1.1 工程的生成 61

5.1 MFC程序的启动过程 61

第5章 MFC程序的生命期 61

5.1.3 应用入口——WinMain函数 62

5.1.2 全局对象的产生 62

5.1.5 InitApplication——内部管理 64

5.1.4 AfxWinInit——初始化MFC环境 64

5.1.6 InitInstance——应用的初始化 65

5.2.1 Run——程序挂起 75

5.2 MFC程序的挂起状态 75

5.2.2 空闲处理 78

5.3 MFC程序的终止过程 80

5.4 小结 81

6.1.1 消息结构 82

6.1 消息分类 82

第6章 MFC消息处理 82

6.1.3 系统消息和自定义消息 83

6.1.2 队列消息和非队列消息 83

6.1.6 控件通知 84

6.1.5 命令消息 84

6.1.4 窗口消息 84

6.2.1 消息的寄送 85

6.2 消息的传送 85

6.3.1 消息的接收 86

6.3 消息处理 86

6.2.2 消息的发送 86

6.3.2 窗口过程 87

6.3.3 消息的处理 90

6.3.4 消息反射 99

6.3.5 消息的默认处理 103

6.4 归纳整理 104

6.5.1 子类化 106

6.5 重定向消息 106

6.5.2 重载OnCmdMsg 108

6.5.3 其他重定向技术简介 109

6.6 自定义消息 110

6.7 小结 111

7.1 Windows通用控件介绍 113

第7章 通用控件 113

7.1.1 Windows通用控件 114

7.1.2 窗口类CWnd 115

7.1.3 控件的创建 118

7.1.4 控件的消息 119

7.2.1 按钮控件分类 120

7.2 按钮控件和列表框控件 120

7.2.2 CButton类 121

7.2.3 列表框及其相关的类 123

7.2.4 按钮、列表框控件应用实例 126

7.3 编辑框、组合框和滚动控件 131

7.3.1 编辑框类CEdit类 132

7.3.2 IP地址控件CIPAddressCtrl类 134

7.3.3 组合框类CComboBox/CComboBoxEx 136

7.3.4 微调按钮控件类CSpinButtonCtrl 142

7.3.5 滚动条类CScrollBar 145

7.3.6 滑动块类CSliderCtrl 147

7.3.7 应用实例 150

7.4.1 列表视图 154

7.4 列表视图和树形视图 154

7.4.2 树形视图 160

7.4.3 编程实例 165

7.5 进度条、动画控件和日历控件 169

7.5.1 进度条 170

7.5.2 动画控件 171

7.5.3 日历控件 173

7.6.1 实例介绍 176

7.6 通用控件综合运用实例 176

7.6.2 开发过程 177

7.7 小结 185

8.1.1 对话框与CDialog类 187

8.1 对话框及MFC相关类 187

第8章 对话框 187

8.2 模态对话框 188

8.1.2 工程的创建 188

8.2.1 添加对话框及其类 189

8.2.2 创建模态对话框 190

8.2.3 模态对话框消息循环 195

8.2.4 模态的终结 198

8.2.5 编程实例 200

8.3.1 添加对话框及其类 202

8.3 非模态对话框 202

8.3.2 创建非模态对话框 203

8.3.3 模态对话框与非模态对话框区别 204

8.4.2 数据交换和验证 205

8.4.1 CDataExchange类简介 205

8.4 对话框数据交换和验证 205

8.5 通用对话框 208

8.5.1 颜色选择通用对话框 209

8.5.2 字体选择通用对话框 212

8.5.3 定制打开文件通用对话框 214

8.6 小结 219

9.2 CPropertySheet类 220

9.1 属性表相关类 220

第9章 属性表与向导 220

9.2.2 类CPropertySheet成员一览 221

9.2.1 类简介 221

9.3.2 重要成员函数介绍 222

9.3.1 类简介 222

9.3 CPropertyPage类 222

9.4.2 创建非模态属性表 225

9.4.1 创建模态属性表 225

9.4 属性表创建 225

9.5.1 应用按钮处理方法一——属性表处理 226

9.5 应用按钮的处理 226

9.5.2 应用按钮处理方法二——属性页处理 227

9.6.1 工程的创建 229

9.6 编程实例 229

9.6.2 属性表类编程 230

9.6.3 属性页类编程 231

9.6.4 视图类编程 232

9.6.5 属性表扩展编程 235

9.7.1 向导函数介绍 238

9.7 向导 238

9.7.2 编程实例 239

9.8 小结 242

10.1.1 菜单基本知识 243

10.1 菜单编程 243

第10章 菜单、键盘和鼠标 243

10.1.2 下拉式菜单编程 245

10.1.3 通过代码操纵菜单 247

10.1.4 弹出式菜单编程 251

10.2.1 键盘基础 253

10.2 键盘处理 253

10.2.2 键盘响应 254

10.3.1 鼠标消息 255

10.3 鼠标编程 255

10.3.2 鼠标响应 256

10.3.3 鼠标光标 257

10.3.4 鼠标键盘编程实例 258

10.4 小结 261

11.1 Windows控制窗口概述 262

第11章 工具栏和状态栏 262

11.2.1 MFC工具栏类CToolBar 263

11.2 MFC工具栏类及其实现 263

11.2.2 工具栏的创建 266

11.2.3 工具栏的其他操作 269

11.2.4 工具提示Tooltip 270

11.2.5 工具栏编程实例 272

11.3.1 MFC状态栏类 275

11.3 MFC状态栏类及其实现 275

11.3.2 状态栏的创建 276

11.3.3 状态栏的创建实例 278

11.4 小结 280

12.1.1 处理控制条的位置 281

12.1 通用控制条 281

第12章 控制条 281

12.1.2 控制条的消息分发处理 285

12.1.3 对话条 288

12.1.4 伸缩条 289

12.1.5 通用控制条实例编程 290

12.2.1 定制控制条介绍 294

12.2 定制控制条 294

12.2.2 控制条定制实例 295

12.3 小结 306

13.2 设备上下文 307

13.1 GDI和DC相关类 307

第13章 MFC GDI与绘图 307

13.2.1 设备上下文类型 308

13.2.2 设备上下文MFC类 309

13.2.3 设备上下文操作 312

13.3.1 GDI对象创建过程 313

13.3 GDI对象 313

13.3.3 GDI对象的清除 314

13.3.2 GDI选择的生命期 314

13.4 映射模式 316

13.5 简单GDI对象编程 318

13.6.2 位图格式 322

13.6.1 位图概念 322

13.6 位图 322

13.6.3 位图操作 324

13.7 调色板 327

13.7.2 逻辑调色板与系统调色板 328

13.7.1 调色板概念 328

13.7.3 调色板编程方法 329

13.8 CDib类与位图 330

13.8.1 CDib类声明 331

13.8.2 CDib类实现 332

13.8.3 位图的预览 338

13.8.4 位图的浏览 344

13.9 小结 350

14.2.1 类简介 351

14.2 CFile类 351

第14章 MFC文件操作 351

14.1 MFC文件相关类 351

14.2.2 构造函数及其成员函数分析 352

14.2.3 常见的文件操作函数 353

14.2.4 编程实例 355

14.3.2 构造函数及其成员函数分析 360

14.3.1 类简介 360

14.3 CStdioFile类 360

14.3.3 编程实例 361

14.4.2 构造函数及其成员函数分析 365

14.4.1 类简介 365

14.4 CFileFind类 365

14.4.3 编程实例 368

14.5.1 CMemFile类简介 372

14.5 CMemFile、CSharedFile类 372

14.6.1 Shell文件操作函数介绍 373

14.6 MFC Shell文件操作 373

14.5.2 CSharedFile类简介 373

14.6.2 编程实例 374

14.7 小结 378

15.1.1 文档/视结构简介 380

15.1 MFC文档/视结构 380

第15章 深入Doc与View 380

15.2 文档/视重要函数 381

15.1.3 创建工程 381

15.1.2 MFC文档/视类 381

15.2.1 文档函数 382

15.2.2 视图函数 384

15.3.1 模板对象 386

15.3 对象的创建 386

15.3.2 文档对象 387

15.3.3 框架对象 390

15.3.4 视图对象 391

15.3.5 各对象间的关系 394

15.4.1 持久性和串行化概念 395

15.4 文档读写 395

15.4.3 CArchive对象的使用 396

15.4.2 文件和归档——CArchive 396

15.4.4 使类可串行化 397

15.4.5 串行化实现 398

15.4.6 编程实现 400

15.5 小结 404

16.1 多视基础—窗口分割 405

第16章 多视 405

16.2.2 Create——创建分割窗口 406

16.2.1 类简介 406

16.2 CSplitterWnd类 406

16.2.4 CreateView——创建窗格 408

16.2.3 CreateStatic——创建静态分割窗口 408

16.2.5 SetRowInfo和SetColumnInfo——设置窗格信息 409

16.2.6 OnDrawSplitter——绘制分割窗口特征 410

16.2.7 OnInvertTracker——绘制分割条 411

16.4.2 派生分割窗口类 413

16.4.1 工程的创建 413

16.3 视图切换 413

16.4 编程实例 413

16.4.3 视类编程 415

16.4.4 主框架类编程 417

16.5 小结 420

17.2 CPrintInfo结构 421

17.1 MFC打印相关类 421

第17章 MFC打印技术 421

17.3 默认打印机制 423

17.3.2 “打印”命令消息的处理 424

17.3.1 “打印”命令消息的映射 424

17.4.1 OnPreparePrinting——准备打印 428

17.4 “打印”相关虚成员 428

17.4.3 OnPrepareDC——准备设备上下文 429

17.4.2 OnBeginPrinting——开始打印 429

17.5 打印预览 430

17.4.5 OnEndPrinting——结束打印 430

17.4.4 OnPrint——执行打印 430

17.6.1 直接打印 431

17.6 编程实例 431

17.6.2 “所见即所得”打印 432

17.7 小结 433

18.1.1 WinHelp帮助文件的制作 434

18.1 WinHelp帮助 434

第18章 上下文帮助 434

18.1.2 WinHelp帮助文件的制作实例 436

18.1.3 MFC与WinHelp帮助 439

18.1.4 WinHelp帮助应用实例 442

18.2 HtmlHelp帮助 444

18.3 小结 446

19.1.2 数据库概述 447

19.1.1 SQL语言概述 447

第19章 SQL查询与数据库 447

19.1 SQL语言与数据库概述 447

19.2.1 Access中的SQL查询 448

19.2 SQL查询 448

19.2.2 Select语句简介 449

19.3.3 OLE DB/ADO技术 452

19.3.2 DAO技术 452

19.3 数据库开发技术 452

19.3.1 ODBC API/MFC ODBC技术 452

19.4.1 MFC ODBC的封装类 453

19.4 MFC ODBC操作数据库 453

19.4.2 使用Crecordset操作记录集 456

19.4.3 设置ODBC数据源 462

19.5 ADO操作数据库 463

19.4.4 编程步骤 463

19.5.2 ADO对象模型 464

19.5.1 ADO技术特点 464

19.5.3 ADO接口简介 468

19.5.4 使用Recordset对象 469

19.5.5 编程步骤 472

19.6 小结 474

19.5.6 几种常见的数据源连接方式 474

20.1.1 实现目标 475

20.1 实现目标和数据库设计 475

第20章 ODBC数据库编程——MP3管理系统 475

20.1.2 数据库设计 476

20.2.2 添加位图和图标资源 477

20.2.1 菜单和工具栏制作 477

20.2 工程创建 477

20.2.3 添加对话框资源 478

20.2.4 向工程添加新类 480

20.3 数据库操作准备 481

20.4.1 添加记录 482

20.4 常见数据库操作 482

20.4.2 编辑数据库记录 486

20.4.3 删除数据库记录 488

20.5.1 设置SQL语句 491

20.5 数据库查询 491

20.5.2 递交查询 493

20.5.3 显示查询结果 494

20.5.4 参数化记录集 496

20.6 事务处理 498

20.7 其他内容 499

20.8 小结 500

21.1.1 实现目标 501

21.1 实现目标与数据库设计 501

第21章 ADO数据库编程 501

21.1.2 数据库设计 502

21.2.1 菜单和工具栏制作 503

21.2 工程创建 503

21.2.3 添加对话框资源 504

21.2.2 添加位图和图标资源 504

21.3 数据库操作准备 507

21.2.4 向工程添加新类 507

21.3.3 连接数据库 508

21.3.2 初始化OLE/COM库环境 508

21.3.1 导入ADO动态连接库 508

21.4 ADO中的数据类型 510

21.5 常见数据库操作 512

21.5.1 打开记录集 512

21.5.2 添加数据库记录 513

21.5.3 编辑数据库记录 517

21.5.4 删除数据库记录 520

21.5.5 数据库记录查询 524

21.5.6 关闭记录集和连接 527

21.7 小结 528

21.6 事务处理 528

22.1.1 Windows Sockets基础 529

22.1 WinSoek简介 529

第22章 MFC Socket编程 529

22.1.3 Windows Sockets编程特点 530

22.1.2 Windows Sockets通信 530

22.2.1 类简介 531

22.2 MFC类CAsyncSocket和CSocket 531

22.2.2 主要类成员函数介绍 533

22.3.1 通信过程 535

22.3 利用CSocket进行无连接的通信 535

22.3.2 实例编程 536

22.4.2 实例编程 539

22.4.1 通信过程 539

22.4 利用CSocket进行有连接的通信 539

22.5 CSocket阻塞和非阻塞模式 541

22.5.1 阻塞模式 542

22.5.2 非阻塞模式 543

22.6.1 客户端的实现 544

22.6 WinSock运用实例 544

22.6.2 服务器端的实现 548

22.6.3 程序运行结果 551

22.7 小结 552

23.1.1 WinInet概述 553

23.1 WinInet编程 553

第23章 MFC与Internet编程 553

23.1.2 WinInet开发要点 555

23.1.3 WinInet的开发应用 556

23.1.4 WinInet编程实例 559

23.2.1 ISAPI概述 563

23.2 ISAPI服务器扩展 563

23.2.3 使用MFC开发ISA程序 564

23.2.2 MFC提供的ISAPI类 564

23.2.4 MFC开发ISAPI Extensions程序实例 566

23.3 小结 570

24.1.1 注册表文件 571

24.1 注册表的基本概念 571

第24章 注册表编程 571

24.1.4 注册表的应用 572

24.1.3 注册表的结构 572

24.1.2 注册表编辑器 572

24.2 注册表API函数 574

24.3 注册表API函数编程实例 578

24.4.1 函数介绍 584

24.4 CWinApp实现的注册表函数 584

24.4.2 应用开发实例 586

24.5 注册表类CRegKey 590

24.6.1 CMyRegistry类简介 592

24.6 创建自己的注册表类CMyRegistry 592

24.6.2 CMyRegistry类的实现 593

24.6.3 CMyRegistry类的应用 598

24.7 小结 601

25.2 进程处理简介 602

25.1 进程和线程的基本概念 602

第25章 进程和线程 602

25.2.1 进程的创建 603

25.2.2 进程的管理和终止 604

25.3.1 线程的创建 605

25.3 Win32的线程 605

25.3.2 线程的优先级别 606

25.3.4 线程的创建、终止实例 607

25.3.3 线程的终止 607

25.3.5 线程间的通信 613

25.4 线程同步 614

25.4.1 同步对象 615

25.4.2 等待函数 618

25.5.1 类CWinThread 620

25.5 MFC的线程处理 620

25.5.2 MFC线程的创建 621

25.5.3 函数AfxBeginThread 622

25.5.5 线程的消息循环 624

25.5.4 线程的结束 624

25.6.2 完成实例 625

25.6.1 实例概述 625

25.6 MFC多线程实例 625

25.7 小结 628

26.1.1 DLL基本概念 629

26.1 DLL基本理论 629

第26章 MFC动态链接库 629

26.1.3 DLL的工作原理 630

26.1.2 DLL的分类 630

26.2.1 一个简单的DLL 631

26.2 DLL的编程思想 631

26.2.2 导出函数 634

26.3 访问动态链接库 635

26.2.3 导入函数 635

26.3.2 显式链接 636

26.3.1 隐式链接 636

26.4.1 DllMain函数 638

26.4 其他DLL技术 638

26.5.1 静态链接到MFC的常规DLL 640

26.5 常规MFC DLL 640

26.4.2 DLL文件的查找 640

26.4.3 DLL程序调试 640

26.5.2 动态链接到MFC的常规DLL 643

26.5.3 DLL的链接使用 646

26.6.1 生成DLL 648

26.6 扩展MFC DLL 648

26.6.2 链接DLL 650

26.7 小结 651

27.1 调试基础 652

第27章 调试技术 652

27.1.1 调试的概念 654

27.2 断点的设置和取消 655

27.1.2 调试环境的配置 655

27.2.1 Location页——位置 656

27.2.2 Data页——数据 658

27.2.4 断点的取消 660

27.2.3 Message页——消息 660

27.4 查看工具 661

27.3 控制程序执行 661

27.4.1 变量窗口 662

27.4.4 内存窗口 663

27.4.3 寄存器窗口 663

27.4.2 查看窗口 663

27.4.6 反汇编窗口 664

27.4.5 调用堆栈 664

27.4.7 其他 665

27.5.1 断言宏 666

27.5 高级调试技术 666

27.5.3 倾印——Dump函数 668

27.5.2 跟踪宏——TRACE 668

27.6 内存泄漏 669

27.7 小结 670

28.1 MFC异常类 671

第28章 异常处理 671

28.2 异常的使用 672

28.2.2 异常的捕获和删除 673

28.2.1 异常的使用时机 673

28.2.3 异常中对象的销毁 675

28.3 查看异常内容 677

28.4 MFC异常处理 678

28.6 小结 680

28.5 异常的捕获的原则 680

29.1.1 Visual C++2005的新特点 681

29.1 Visual C++2005的特点 681

第29章 Visual C++2005 MFC编程环境 681

29.1.3 Visual C++2005属性窗口 682

29.1.2 MFC库 682

29.1.4 应用向导 683

29.1.5 调试工具 684

29.2 Visual C++2005开发MFC应用程序 685

29.2.2 实现功能开发 686

29.2.1 创建Windows窗体 686

29.2.3 编译运行 689

29.3 小结 690

30.1.1 基本概念 691

30.1 通用语言运行环境(CLR) 691

第30章 C++/CLI CLR编程 691

30.2.1 C++/CLI基本概念 692

30.2 C++/CLI概述 692

30.1.2 MFC与CLR 692

30.2.2 C++/CLI主要内容 693

30.3.2 CLR项目向导 695

30.3.1 .NET框架应用程序的特点 695

30.3 C++/CLI CLR应用程序开发基础 695

30.4.1 Win表单开发的一般方法 697

30.4 C++/CLI开发Win表单 697

30.4.2 Win表单控件的使用 699

30.4.3 Win表单的文档程序设计 703

30.5 C++/CLI开发Web Service 706

30.6 小结 710

附录A 常见网络资源 711

附录B 术语表 713