《VC++深入详解》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:孙鑫编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121173608
  • 页数:767 页
图书介绍:本书从实际应用入手,由浅入深、循序渐进地讲述Windows程序内部运行机制、MFC框架、文本、菜单、对话框、文件操作、网络编程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题。本书不同于一般的讲述VC++使用的书籍,本书主要从程序内部运行的机制和MFC程序的组织脉络入手,使读者在学习VC++编程知识时,既能够知其然,又能知其所以然,从而帮助读者从根本上理解和掌握Windows的程序设计。

第1章Windows程序内部运行机制 1

1.1 API与SDK 1

1.2窗口与句柄 2

1.3消息与消息队列 3

1.4 Win Main函数 4

1.4.1 WinMain函数的定义 5

1.4.2窗口的创建 6

1.4.3消息循环 13

1.4.4编写窗口过程函数 15

1.5动手写第一个Windows程序 19

1.6消息循环的错误分析 23

1.7变量的命名约定 25

1.8本章小结 26

第2章 掌握C+ 27

2.1从结构到类 27

2.1.1结构体的定义 27

2.1.2结构体与类 29

2.2 C++的特性 30

2.2.1类与对象 34

2.2.2构造函数 34

2.2.3析构函数 37

2.2.4函数的重载 37

2.2.5 this指针 39

2.2.6类的继承 41

2.2.7虚函数与多态性、纯虚函数 48

2.2.8函数的覆盖和隐藏 52

2.2.9引用 55

2.2.10 C+++类的设计习惯及头文件重复包含问题的解决 57

2.2.11 VC+++程序编译链接的原理与过程 61

第3章MFC框架程序剖析 63

3.1 MFC AppWizard 63

3.2基于MFC的程序框架剖析 66

3.2.1 MFC程序中的WinMain函数 67

3.2.2 MFC框架窗口 78

3.2.3消息循环 85

3.2.4窗口过程函数 86

3.2.5文档/视类结构 87

3.2.6帮助对话框类 88

3.3窗口类、窗口类对象与窗口 88

3.3.1三者之间关系 88

3.3.2在窗口中显示按钮 92

3.4本章小结 99

第4章 简单绘图 100

4.1 MFC消息映射机制 100

4.1.1 CIassWizard 101

4.1.2消息映射机制 108

4.2绘制线条 112

4.2.1利用SDK全局函数实现 114

画线功能 114

4.2.2利用MFC的CDC类实现画线功能 115

4.2.3利用MFC的CClientDC类实现画线功能 116

4.2.4利用MFC的C WindowDC类实现画线功能 117

4.2.5在桌面窗口中画线 118

4.2.6绘制彩色线条 119

4.3使用画刷绘图 121

4.3.1简单画刷 121

4.3.2位图画刷 122

4.3.3透明画刷 124

4.4绘制连续线条 130

4.5绘制扇形效果的线条 132

第5章 文本编程 135

5.1插入符 135

5.1.1创建文本插入符 135

5.1.2创建图形插入符 139

5.2窗口重绘 140

5.2.1 OnDraw函数 141

5.2.2添加字符串资源 142

5.3路径 144

5.4字符输入 149

5.4.1设置字体 153

5.4.2字幕变色功能的实现 156

5.5本章小结 161

第6章 菜单 162

6.1菜单命令响应函数 162

6.2菜单命令的路由 165

6.2.1程序类对菜单命令的响应顺序 165

6.2.2 Windows消息的分类 166

6.2.3菜单命令的路由 166

6.3基本菜单操作 169

6.3.1标记菜单 169

6.3.2默认菜单项 172

6.3.3图形标记菜单 174

6.3.4禁用菜单项 177

6.3.5移除和装载菜单 181

6.3.6 MFC菜单命令更新机制 183

6.3.7快捷菜单 187

6.4动态菜单操作 193

6.4.1添加菜单项目 194

6.4.2插入菜单项目 195

6.4.3删除菜单 198

6.4.4动态添加的菜单项的命令响应 199

6.5电话本示例程序 200

6.5.1动态添加子菜单的实现 201

6.5.2显示输入的字符 203

6.5.3添加菜单项及其命令响应函数 206

6.5.4框架类窗口截获菜单命令消息 211

6.6本章小结 218

第7章 对话框(一) 219

7.1对话框基本知识 219

7.1.1常用控件介绍 219

7.1.2对话框的种类 220

7.2对话框的创建和显示 220

7.2.1模态对话框的创建 224

7.2.2非模态对话框的创建 225

7.3动态创建按钮 228

7.4控件的访问 232

7.4.1控件的调整 232

7.4.2静态文本控件 233

7.4.3编辑框控件 235

7.5对话框伸缩功能的实现 248

7.6输入焦点的传递 254

7.7默认按钮的进一步说明 262

7.8本章小结 263

第8章 对话框(二) 264

8.1“逃跑”按钮的实现 264

8.2属性表单和向导的创建 271

8.2.1创建属性页 276

8.2.2创建属性表单 282

8.2.3向导的创建 287

8.3本章小结 307

附录 307

第9章 定制应用程序外观 311

9.1修改应用程序窗口的外观 311

9.1.1在窗口创建之前修改 311

9.1.2在窗口创建之后修改 314

9.2修改窗口的光标、图标和背景 316

9.2.1在窗口创建之前修改 316

9.2.2在窗口创建之后修改 320

9.3模拟动画图标 322

9.3.1加载图标资源 322

9.3.2定时器的处理 324

9.4工具栏编程 327

9.4.1在工具栏上添加和删除按钮 328

9.4.2创建工具栏 329

9.5状态栏编程 339

9.6进度栏编程 345

9.6.1在窗口中创建进度栏 346

9.6.2在状态栏的窗格中创建进度栏 347

9.7在状态栏上显示鼠标当前位置 354

9.8启动画面 357

9.9本章小结 360

第10章 绘图控制 361

10.1简单绘图 361

10.2设置对话框 366

10.2.1设置线宽 366

10.2.2设置线型 370

10.3颜色对话框 372

10.4字体对话框 377

10.5示例对话框 382

10.6改变对话框和控件的背景及文本颜色 386

10.6.1改变整个对话框及其上子控件的背景色 387

10.6.2仅改变某个子控件的背景及文本颜色 388

10.6.3改变控件上的文本字体 391

10.6.4改变按钮控件的背景色及文本颜色 392

10.7位图的显示 398

10.8本章小结 403

第11章 图形的保存和重绘 404

11.1坐标空间和转换 404

11.1.1坐标空间 404

11.1.2转换 405

11.1.3逻辑坐标和设备坐标 409

11.2图形的保存和重绘 411

11.2.1集合类CPtrArray 413

11.2.2 OnPaint与OnDraw 417

11.3窗口滚动功能的实现 419

11.3.1 CScrollView类 419

11.3.2图形错位现象 421

11.4元文件 426

11.4.1元文件的使用 426

11.4.2元文件的保存与打开 429

11.5兼容设备描述表 431

11.6本章小结 434

第12章 文件和注册表操作 435

12.1 const char*和char const 435

12.1.1 const char 435

12.1.2 char* const 436

12.2 C语言对文件操作的支持 437

12.2.1文件的打开 437

12.2.2文件的写入 438

12.2.3文件的关闭 439

12.2.4 fflush函数 440

12.2.5文件指针定位 440

12.2.6文件的读取 442

12.2.7二进制文件和文本文件 445

12.2.8文本方式和二进制方式 448

12.3 C++对文件操作的支持 451

12.4 Win32 API对文件操作的支持 453

12.4.1文件的创建和打开 453

12.4.2文件的写入 456

12.4.3文件的读取 458

12.5 MFC对文件操作的支持 459

12.5.1文件的写入 460

12.5.2文件的读取 461

12.5.3 CFileDialog类 461

12.6 Win.ini文件的访问 466

12.6.1 Win.ini文件的结构 466

12.6.2 Win.ini文件的写入 467

12.6.3 Win.ini文件的读取 469

12.7注册表的编程 472

12.7.1注册表API 472

12.7.2注册表访问示例 476

12.8本章小结 480

第13章 文档与串行化 481

13.1使用CArchive类对文件进行读/写操作 481

13.2 MFC框架程序提供的文件新建功能 484

13.2.1 IDR MAINFRAME字符串资源 485

13.2.2 OnNewDocument函数的调用过程 489

13.3文档串行化 496

13.3.1文档类的Serialize函数 496

13.3.2 MFC框架对Serialize函数的调用过程 498

13.4可串行化的类 506

13.4.1实现类对串行化的支持 506

13.4.2利用可串行化类的Serialize函数保存和加载对象 509

13.4.3版本号 513

13.4.4利用CObArray类对串行化的支持保存和加载数据 514

13.5文档对象数据的销毁 518

13.6本章小结 521

第14章 网络编程 523

14.1计算机网络基本知识 523

14.1.1 IP地址 524

14.1.2协议 524

14.1.3网络的状况 524

14.1.4网络异质性问题的解决 525

14.1.5 ISO/OSI七层参考模型 525

14.1.6数据封装 528

14.1.7 TCP/IP模型 528

14.1.8端口 529

14.1.9套接字(socket)的引入 529

14.1.10网络字节顺序 530

14.1.11客户机/服务器模式 530

14.2 Windows Sockets的实现 530

14.2.1套接字的类型 531

14.2.2基于TCP(面向连接)的socket编程 531

14.2.3基于UDP(面向无连接)的socket编程 532

14.3相关函数 532

14.3.1 WSAStartup函数 532

14.3.2 socket函数 534

14.3.3 bind函数 534

14.3.4 inet addr和inet ntoa函数 535

14.3.5 listen函数 535

14.3.6 accept函数 536

14.3.7 send函数 536

14.3.8 recv函数 536

14.3.9 connect函数 537

14.3.10 recvom函数 537

14.3.11 sendto函数 538

14.3.12 htons和htonl函数 538

14.4基于TCP的网络应用程序的编写 538

14.4.1服务器端程序 538

14.4.2客户端程序 543

14.5基于UDP的网络应用程序的编写 546

14.5.1服务器端程序 546

14.5.2客户端程序 548

14.6基于UDP的简单聊天程序 550

14.6.1服务器端程序 550

14.6.2客户端程序 553

14.7本章小结 556

第15章 多线程 557

15.1基本概念 557

15.1.1进程 557

15.1.2线程 560

15.2线程创建函数 561

15.3简单多线程示例 563

15.4线程同步 566

15.4.1火车站售票系统模拟程序 566

15.4.2多线程程序容易出现的问题 568

15.4.3利用互斥对象实现线程同步 570

15.5保证应用程序只有一个实例运行 578

15.6网络聊天室程序的实现 579

15.6.1加载套接字库 580

15.6.2创建并初始化套接字 581

15.6.3实现接收端功能 582

15.6.4实现发送端功能 586

15.7本章小结 589

第16章 线程同步与异步 590

套接字编程 590

16.1事件对象 590

16.1.1创建事件对象 590

16.1.2设置事件对象状态 591

16.1.3重置事件对象状态 591

16.1.4利用事件对象实现线程同步 591

16.1.5保证应用程序只有一个实例运行 597

16.2关键代码段 598

16.2.1相关的API函数 598

16.2.2利用关键代码段实现线程同步 599

16.3线程死锁 602

16.4互斥对象、事件对象与关键代码段的比较 605

16.5基于消息的异步套接字 606

16.5.1相关函数说明 606

16.5.2网络聊天室程序的实现 611

16.6本章小结 621

第17章 进程间通信 622

17.1剪贴板 622

17.1.1数据发送 623

17.1.2数据接收 627

17.2匿名管道 629

17.2.1基础知识 629

17.2.2进程的创建 630

17.2.3 父进程的实现 635

17.2.4子进程的实现 639

17.3命名管道 643

17.3.1基础知识 643

17.3.2服务器端程序 646

17.3.3客户端程序 651

17.4邮槽 655

17.4.1服务器端程序 656

17.4.2客户端程序 657

17.5本章小结 659

第18章ActiveX控件 660

18.1 ActiveX控件 660

18.1.1 ActiveX控件的好处 662

18.1.2 MFC ActiveX Control Wizard 662

18.1.3 ActiveX控件的测试 666

18.1.4 ActiveX控件的注册 668

18.1.5时钟控件的实现 669

18.2属性 671

18.2.1标准属性 672

18.2.2自定义属性 677

18.3方法 682

18.4事件 684

18.4.1标准事件 684

18.4.2自定义事件 686

18.5属性的持久性 688

18.6环境属性 691

18.7 ActiveX控件测试程序 693

18.8本章小结 699

18.9问题 699

第19章 动态链接库 701

19.1动态链接库概述 701

19.1.1静态库和动态库 701

19.1.2使用动态链接库的好处 702

19.1.3动态链接库的加载 703

19.2 Win32 DLL的创建和使用 703

19.2.1 Dumpbin命令 704

19.2.2从DLL中导出函数 705

19.3隐式链接方式加载DLL 707

19.3.1利用extern声明外部函数 707

19.3.2 Depends工具 710

19.3.3利用_declspec (dllimport)声明外部函数 712

19.4完善Win32 DLL例子 712

19.5从DLL中导出C++类 714

19.6解决名字改编问题 718

19.7显示加载方式加载DLL 723

19.7.1 LoadLibary函数 723

19.7.2调用约定 725

19.7.3根据序号访问DLL中的导出函数 728

19.8 D11Main函数 729

19.9 MFC DLL 730

19.10本章小结 731

第20章HOOK和数据库访问 732

20.1 HOOK编程 732

20.1.1基本知识 732

20.1.2进程内钩子 734

20.1.3全局钩子 741

20.2数据库访问技术 752

20.3在VB中利用ADO访问数据库 755

20.3.1利用ADO控件访问数据库 755

20.3.2利用ADO对象访问数据库 758

20.4在VC中利用ADO访问数据库 762

20.5本章小结 767