VC++深入详解(第3版)(基于VisualStudio2017)

VC++深入详解(第3版)(基于VisualStudio2017)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2019-06
ISBN: 9787121362217
定价: 168.00
装帧: 平装
开本: 16开
纸张: 胶版纸
131人买过
  •   《VC++深入详解(第3版)(基于Visual Studio 2017)》在内容的组织上循序渐进、由浅入深;在知识的介绍上,从内到外、从原理到实践。 
      第1章首先为读者介绍了Visual Studio 2017的安装和使用,以及离线MSDN的安装。第2章帮助读者掌握Windows平台下程序运行的内部机制。第3章帮助读者复习C++中的重要知识,为后续知识的学习打下良好的基础。第4章重点剖析MFC框架程序的运行脉络,并与第2章的知识做对照,为读者彻底扫清学习MFC的迷雾。相信通过这一章的学习,很多以前学过MFC的读者都会有一种恍然大悟的感觉。前四章可以归为基础部分,从第5章开始就是实际应用开发的讲解了,包括绘图、文本、菜单、对话框、定制程序外观、图形保存和重绘、文件和注册表操作、网络编程、多线程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题,并且每一章都有一个完整的例子。 

     
      《VC++深入详解(第3版)(基于Visual Studio 2017)》读者群包括: 
      掌握了C语言,想进一步学习Windows编程的读者。 
      学习VC++多年,但始终没有真正入门的读者。 
      正在从事VC++开发的初级程序员。 
      有一定VC++开发经验,想要系统地学习VC++的读者。 

    孙  鑫   
    IT技术和教育专家,2009年中国教育杰出人物。具有20多年的软件开发和教育培训经验,精通多种程序语言和技术架构, 曾主讲过的课程包括C/C++、VC++、COM/DCOM/COM+、SQL Server、Oracle、Java、J2EE、Struts/Struts 2、Hibernate、MyBatis、 Spring、数据库建模等。2004年曾推出“Java无难事”和“VC++深入编程”教学视频,获得了强烈反响,在网络上掀起了一股视频教学的风潮,数十万名学员通过这两套视频走上了软件开发的道路。从2006年开始,相继出版了畅销技术专著:《Java Web开发详 解》《VC++深入详解》《Struts 2深入详解》《Servlet/JSP深入详解》《XML、XML Schema、XSLT 2.0和XQuery开发详解 》《HTML5、CSS和JavaScript开发》。
    第1章  准备开发环境 1 
    1.1 下载并安装Visual Studio 2017 1 
    1.2 运行第一个程序——Hello World 3 
    1.3 安装离线MSDN 5 
    1.4 小结 7 
    第2章  Windows程序内部运行机制 8 
    2.1 API与SDK 8 
    2.2 窗口与句柄 9 
    2.3 消息与消息队列 10 
    2.4 WinMain函数 11 
    2.4.1  WinMain函数的定义 12 
    2.4.2  窗口的创建 13 
    2.4.3  消息循环 20 
    2.4.4  编写窗口过程函数 22 
    2.5 动手写第一个Windows程序 26 
    2.6 消息循环的错误分析 30 
    2.7 变量的命名约定 32 
    2.8 小结 33 
    第3章  掌握C++ 34 
    3.1 从结构到类 34 
    3.1.1  结构体的定义 34 
    3.1.2  结构体与类 36 
    3.2 C++的特性 38 
    3.2.1  类与对象 39 
    3.2.2  构造函数 39 
    3.2.3  析构函数 42 
    3.2.4  函数的重载 43 
    3.2.5  this指针 44 
    3.2.6  类的继承 46 
    3.2.7  虚函数与多态性、纯虚函数 54 
    3.2.8  函数的覆盖和隐藏 58 
    3.2.9  引用 61 
    3.2.10  C++类的设计习惯及头文件重复包含问题的解决 63 
    3.2.11  VC++程序编译链接的原理与过程 69 
    第4章  MFC框架程序剖析 71 
    4.1 MFC应用程序向导 71 
    4.2 基于MFC的程序框架剖析 74 
    4.2.1  MFC程序中的WinMain函数 76 
    4.2.2  MFC框架窗口 87 
    4.2.3  消息循环 93 
    4.2.4  窗口过程函数 95 
    4.2.5  文档/视类结构 96 
    4.2.6  帮助对话框类 96 
    4.3 窗口类、窗口类对象与窗口 97 
    4.3.1  三者之间关系 97 
    4.3.2  在窗口中显示按钮 101 
    4.4 本章小结 108 
    第5章  简单绘图 109 
    5.1 MFC消息映射机制 109 
    5.1.1  类向导 110 
    5.1.2  消息映射机制 113 
    5.2 绘制线条 118 
    5.2.1  利用SDK全局函数实现画线功能 119 
    5.2.2  利用MFC的CDC类实现画线功能 120 
    5.2.3  利用MFC的CClientDC类实现画线功能 121 
    5.2.4  利用MFC的CWindowDC类实现画线功能 123 
    5.2.5  在桌面窗口中画线 124 
    5.2.6  绘制彩色线条 125 
    5.3 使用画刷绘图 127 
    5.3.1  简单画刷 127 
    5.3.2  位图画刷 128 
    5.3.3  透明画刷 131 
    5.4 绘制连续线条 136 
    5.5 绘制扇形效果的线条 138 
    5.6 本章小结 140 
    第6章  文本编程 141 
    6.1 插入符 141 
    6.1.1  创建文本插入符 141 
    6.1.2  创建图形插入符 145 
    6.2 窗口重绘 146 
    6.2.1  OnDraw函数 147 
    6.2.2  添加字符串资源 149 
    6.3 路径 151 
    6.4 字符输入 155 
    6.4.1  设置字体 160 
    6.4.2  字幕变色功能的实现 162 
    6.5 本章小结 167 
    第7章  菜单 168 
    7.1 菜单命令响应函数 168 
    7.2 菜单命令的路由 171 
    7.2.1  程序类对菜单命令的响应顺序 171 
    7.2.2  Windows消息的分类 172 
    7.2.3  菜单命令路由的过程 172 
    7.3 基本菜单操作 174 
    7.3.1  标记菜单 175 
    7.3.2  默认菜单项 177 
    7.3.3  图形标记菜单 179 
    7.3.4  禁用菜单项 182 
    7.3.5  移除和装载菜单 185 
    7.3.6  MFC菜单命令更新机制 188 
    7.3.7  快捷菜单 192 
    7.4 动态菜单操作 195 
    7.4.1  添加菜单项目 195 
    7.4.2  插入菜单项目 197 
    7.4.3  删除菜单 200 
    7.4.4  动态添加的菜单项的命令响应 200 
    7.5 电话本示例程序 202 
    7.5.1  动态添加子菜单的实现 203 
    7.5.2  显示输入的字符 205 
    7.5.3  添加菜单项及其命令响应函数 207 
    7.5.4  框架类窗口截获菜单命令消息 210 
    7.6 本章小结 217 
    第8章  对话框(一) 218 
    8.1 对话框基本知识 218 
    8.1.1  常用控件介绍 218 
    8.1.2  对话框的种类 220 
    8.2 对话框的创建和显示 220 
    8.2.1  模态对话框的创建 224 
    8.2.2  非模态对话框的创建 225 
    8.3 动态创建按钮 227 
    8.4 控件的访问 231 
    8.4.1  控件的调整 232 
    8.4.2  静态文本控件 233 
    8.4.3  编辑框控件 235 
    8.5 对话框伸缩功能的实现 247 
    8.6 输入焦点的传递 253 
    8.7 默认按钮的进一步说明 261 
    8.8 本章小结 261 
    第9章  对话框(二) 262 
    9.1  “逃跑”按钮的实现 262 
    9.2 属性表单和向导的创建 269 
    9.2.1  创建属性页 272 
    9.2.2  创建属性表单 277 
    9.2.3  向导的创建 279 
    9.3 本章小结 296 
    附录 296 
    第10章  定制应用程序外观 299 
    10.1 修改应用程序窗口的外观 299 
    10.1.1  在窗口创建之前修改 299 
    10.1.2  在窗口创建之后修改 302 
    10.2 修改窗口的光标、图标和背景 304 
    10.2.1  在窗口创建之前修改 304 
    10.2.2  在窗口创建之后修改 308 
    10.3 模拟动画图标 310 
    10.3.1  加载图标资源 310 
    10.3.2  定时器的处理 312 
    10.4 工具栏编程 314 
    10.4.1  在工具栏上添加和删除按钮 315 
    10.4.2  创建工具栏 316 
    10.5 状态栏编程 325 
    10.6 进度栏编程 332 
    10.6.1  在窗口中创建进度栏 332 
    10.6.2  在状态栏的窗格中创建进度栏 333 
    10.7 在状态栏上显示鼠标当前位置 340 
    10.8 本章小结 343 
    第11章  绘图控制 344 
    11.1 简单绘图 344 
    11.2 设置对话框 349 
    11.2.1  设置线宽 349 
    11.2.2  设置线型 353 
    11.3 颜色对话框 355 
    11.4 字体对话框 360 
    11.5 示例对话框 365 
    11.6 改变对话框和控件的背景及文本颜色 368 
    11.6.1  改变整个对话框及其上子控件的背景色 369 
    11.6.2  仅改变某个子控件的背景及文本颜色 370 
    11.6.3  改变控件上的文本字体 373 
    11.6.4  改变按钮控件的背景色及文本颜色 375 
    11.7 位图的显示 379 
    11.8 本章小结 384 
    第12章  图形的保存和重绘 385 
    12.1 坐标空间和转换 385 
    12.1.1  坐标空间 385 
    12.1.2  转换 386 
    12.1.3  逻辑坐标和设备坐标 390 
    12.2 图形的保存和重绘 392 
    12.2.1  集合类CPtrArray 394 
    12.2.2  OnPaint与OnDraw 398 
    12.3 窗口滚动功能的实现 400 
    12.3.1  CScrollView类 400 
    12.3.2  图形错位现象 402 
    12.4 元文件 407 
    12.4.1  元文件的使用 407 
    12.4.2  元文件的保存与打开 411 
    12.5 兼容设备描述表 413 
    12.6 本章小结 416 
    第13章  文件和注册表操作 417 
    13.1 const char*和char* const 417 
    13.1.1  const char* 417 
    13.1.2  char* const 418 
    13.2 C语言对文件操作的支持 419 
    13.2.1  文件的打开 419 
    13.2.2  文件的写入 420 
    13.2.3  文件的关闭 422 
    13.2.4  fflush函数 423 
    13.2.5  文件指针定位 423 
    13.2.6  文件的读取 424 
    13.2.7  二进制文件和文本文件 428 
    13.2.8  文本方式和二进制方式 430 
    13.3 C++对文件操作的支持 433 
    13.4 Win32 API对文件操作的支持 435 
    13.4.1  文件的创建和打开 435 
    13.4.2  文件的写入 439 
    13.4.3  文件的读取 440 
    13.5 MFC对文件操作的支持 442 
    13.5.1  文件的写入 443 
    13.5.2  文件的读取 443 
    13.5.3  CFileDialog类 444 
    13.6 INI文件的访问 449 
    13.6.1  INI文件的结构 449 
    13.6.2  INI文件的写入 450 
    13.6.3  INI文件的读取 451 
    13.7 CWinApp的注册表读写函数 453 
    13.8 注册表的编程 455 
    13.8.1  注册表API 455 
    13.8.2  注册表访问示例 462 
    13.9 本章小结 468 
    第14章  文档与串行化 469 
    14.1 使用CArchive类对文件进行读写操作 469 
    14.2 MFC框架程序提供的文件新建功能 472 
    14.2.1  IDR_MAINFRAME字符串资源 473 
    14.2.2  OnNewDocument函数的调用过程 477 
    14.3 文档串行化 485 
    14.3.1  文档类的Serialize函数 485 
    14.3.2  MFC框架对Serialize函数的调用过程 487 
    14.4 可串行化的类 495 
    14.4.1  实现类对串行化的支持 495 
    14.4.2  利用可串行化类的Serialize函数保存和加载对象 497 
    14.4.3  版本号 501 
    14.4.4  利用CObArray类对串行化的支持保存和加载数据 502 
    14.5 文档对象数据的销毁 506 
    14.6 本章小结 510 
    第15章  网络编程 511 
    15.1 计算机网络基本知识 511 
    15.1.1  IP地址 512 
    15.1.2  协议 512 
    15.1.3  网络的状况 513 
    15.1.4  网络异质性问题的解决 513 
    15.1.5  ISO/OSI七层参考模型 513 
    15.1.6  数据封装 516 
    15.1.7  TCP/IP模型 516 
    15.1.8  端口 517 
    15.1.9  套接字(socket)的引入 517 
    15.1.10  网络字节顺序 518 
    15.1.11  客户机/服务器模式 518 
    15.2 Windows Sockets的实现 519 
    15.2.1  套接字的类型 519 
    15.2.2  基于TCP(面向连接)的socket编程 519 
    15.2.3  基于UDP(面向无连接)的socket编程 520 
    15.3 相关函数 520 
    15.3.1  WSAStartup函数 521 
    15.3.2  socket函数 522 
    15.3.3  bind函数 522 
    15.3.4  inet_addr和inet_ntoa函数 523 
    15.3.5  inet_pton和inet_ntop函数 524 
    15.3.6  listen函数 525 
    15.3.7  accept函数 525 
    15.3.8  send函数 525 
    15.3.9  recv函数 526 
    15.3.10  connect 526 
    15.3.11  recvfrom 526 
    15.3.12  sendto函数 527 
    15.3.13  htons和htonl函数 527 
    15.4 基于TCP的网络应用程序的编写 528 
    15.4.1  服务器端程序 528 
    15.4.2  客户端程序 532 
    15.5 基于UDP的网络应用程序的编写 535 
    15.5.1  服务器端程序 535 
    15.5.2  客户端程序 537 
    15.6 基于UDP的简单聊天程序 538 
    15.6.1  服务器端程序 539 
    15.6.2  客户端程序 542 
    15.7 本章小结 544 
    第16章  多线程 545 
    16.1 基本概念 545 
    16.1.1  进程 545 
    16.1.2  线程 549 
    16.2 线程创建函数 550 
    16.3 简单多线程示例 551 
    16.4 线程同步 555 
    16.4.1  火车站售票系统模拟程序 555 
    16.4.2  多线程程序容易出现的问题 557 
    16.4.3  利用互斥对象实现线程同步 558 
    16.5 保证应用程序只有一个实例运行 566 
    16.6 网络聊天室程序的实现 567 
    16.6.1  加载套接字库 568 
    16.6.2  创建并初始化套接字 569 
    16.6.3  实现接收端功能 570 
    16.6.4  实现发送端功能 575 
    16.7 本章小结 577 
    第17章  线程同步与异步套接字编程 578 
    17.1 事件对象 578 
    17.1.1  创建事件对象 578 
    17.1.2  设置事件对象状态 579 
    17.1.3  重置事件对象状态 579 
    17.1.4  利用事件对象实现线程同步 579 
    17.1.5  保证应用程序只有一个实例运行 586 
    17.2 关键代码段 586 
    17.2.1  相关的API函数 587 
    17.2.2  利用关键代码段实现线程同步 587 
    17.3 线程死锁 590 
    17.4 互斥对象、事件对象与关键代码段的比较 594 
    17.5 基于消息的异步套接字 594 
    17.5.1  相关函数说明 595 
    17.5.2  网络聊天室程序的实现 600 
    17.6 本章小结 610 
    第18章  进程间通信 611 
    18.1 剪贴板 611 
    18.1.1  数据发送 612 
    18.1.2  数据接收 616 
    18.2 匿名管道 618 
    18.2.1  基础知识 618 
    18.2.2  进程的创建 619 
    18.2.3  父进程的实现 624 
    18.2.4  子进程的实现 628 
    18.3 命名管道 631 
    18.3.1  基础知识 631 
    18.3.2  服务器端程序 635 
    18.3.3  客户端程序 640 
    18.4 邮槽 643 
    18.4.1  服务器端程序 644 
    18.4.2  客户端程序 645 
    18.5 本章小结 648 
    第19章  ActiveX控件 649 
    19.1 ActiveX控件 649 
    19.1.1  ActiveX控件的好处 650 
    19.1.2  MFC ActiveX控件向导 650 
    19.1.3  ActiveX控件的注册 654 
    19.1.4  ActiveX控件的测试 656 
    19.1.5  时钟控件的实现 659 
    19.2 属性 660 
    19.2.1  标准属性 661 
    19.2.2  自定义属性 666 
    19.3 方法 672 
    19.4 事件 674 
    19.4.1  标准事件 675 
    19.4.2  自定义事件 676 
    19.5 属性的持久性 679 
    19.6 环境属性 681 
    19.7 ActiveX控件测试程序 683 
    19.8 本章小结 686 
    第20章  动态链接库 688 
    20.1 动态链接库概述 688 
    20.2 DLL的创建和使用 690 
    20.3 隐式链接方式加载DLL 693 
    20.4 完善DLL例子 699 
    20.5 从DLL中导出C++类 701 
    20.6 解决名字改编问题 704 
    20.7 显示加载方式加载DLL 709 
    20.8 DllMain函数 715 
    20.9 MFC DLL 716 
    20.10 本章小结 717 
    第21章  HOOK编程 718 
    21.1 HOOK编程 718 
    21.2 本章小结 738 

  • 内容简介:
      《VC++深入详解(第3版)(基于Visual Studio 2017)》在内容的组织上循序渐进、由浅入深;在知识的介绍上,从内到外、从原理到实践。 
      第1章首先为读者介绍了Visual Studio 2017的安装和使用,以及离线MSDN的安装。第2章帮助读者掌握Windows平台下程序运行的内部机制。第3章帮助读者复习C++中的重要知识,为后续知识的学习打下良好的基础。第4章重点剖析MFC框架程序的运行脉络,并与第2章的知识做对照,为读者彻底扫清学习MFC的迷雾。相信通过这一章的学习,很多以前学过MFC的读者都会有一种恍然大悟的感觉。前四章可以归为基础部分,从第5章开始就是实际应用开发的讲解了,包括绘图、文本、菜单、对话框、定制程序外观、图形保存和重绘、文件和注册表操作、网络编程、多线程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题,并且每一章都有一个完整的例子。 

     
      《VC++深入详解(第3版)(基于Visual Studio 2017)》读者群包括: 
      掌握了C语言,想进一步学习Windows编程的读者。 
      学习VC++多年,但始终没有真正入门的读者。 
      正在从事VC++开发的初级程序员。 
      有一定VC++开发经验,想要系统地学习VC++的读者。 

  • 作者简介:
    孙  鑫   
    IT技术和教育专家,2009年中国教育杰出人物。具有20多年的软件开发和教育培训经验,精通多种程序语言和技术架构, 曾主讲过的课程包括C/C++、VC++、COM/DCOM/COM+、SQL Server、Oracle、Java、J2EE、Struts/Struts 2、Hibernate、MyBatis、 Spring、数据库建模等。2004年曾推出“Java无难事”和“VC++深入编程”教学视频,获得了强烈反响,在网络上掀起了一股视频教学的风潮,数十万名学员通过这两套视频走上了软件开发的道路。从2006年开始,相继出版了畅销技术专著:《Java Web开发详 解》《VC++深入详解》《Struts 2深入详解》《Servlet/JSP深入详解》《XML、XML Schema、XSLT 2.0和XQuery开发详解 》《HTML5、CSS和JavaScript开发》。
  • 目录:
    第1章  准备开发环境 1 
    1.1 下载并安装Visual Studio 2017 1 
    1.2 运行第一个程序——Hello World 3 
    1.3 安装离线MSDN 5 
    1.4 小结 7 
    第2章  Windows程序内部运行机制 8 
    2.1 API与SDK 8 
    2.2 窗口与句柄 9 
    2.3 消息与消息队列 10 
    2.4 WinMain函数 11 
    2.4.1  WinMain函数的定义 12 
    2.4.2  窗口的创建 13 
    2.4.3  消息循环 20 
    2.4.4  编写窗口过程函数 22 
    2.5 动手写第一个Windows程序 26 
    2.6 消息循环的错误分析 30 
    2.7 变量的命名约定 32 
    2.8 小结 33 
    第3章  掌握C++ 34 
    3.1 从结构到类 34 
    3.1.1  结构体的定义 34 
    3.1.2  结构体与类 36 
    3.2 C++的特性 38 
    3.2.1  类与对象 39 
    3.2.2  构造函数 39 
    3.2.3  析构函数 42 
    3.2.4  函数的重载 43 
    3.2.5  this指针 44 
    3.2.6  类的继承 46 
    3.2.7  虚函数与多态性、纯虚函数 54 
    3.2.8  函数的覆盖和隐藏 58 
    3.2.9  引用 61 
    3.2.10  C++类的设计习惯及头文件重复包含问题的解决 63 
    3.2.11  VC++程序编译链接的原理与过程 69 
    第4章  MFC框架程序剖析 71 
    4.1 MFC应用程序向导 71 
    4.2 基于MFC的程序框架剖析 74 
    4.2.1  MFC程序中的WinMain函数 76 
    4.2.2  MFC框架窗口 87 
    4.2.3  消息循环 93 
    4.2.4  窗口过程函数 95 
    4.2.5  文档/视类结构 96 
    4.2.6  帮助对话框类 96 
    4.3 窗口类、窗口类对象与窗口 97 
    4.3.1  三者之间关系 97 
    4.3.2  在窗口中显示按钮 101 
    4.4 本章小结 108 
    第5章  简单绘图 109 
    5.1 MFC消息映射机制 109 
    5.1.1  类向导 110 
    5.1.2  消息映射机制 113 
    5.2 绘制线条 118 
    5.2.1  利用SDK全局函数实现画线功能 119 
    5.2.2  利用MFC的CDC类实现画线功能 120 
    5.2.3  利用MFC的CClientDC类实现画线功能 121 
    5.2.4  利用MFC的CWindowDC类实现画线功能 123 
    5.2.5  在桌面窗口中画线 124 
    5.2.6  绘制彩色线条 125 
    5.3 使用画刷绘图 127 
    5.3.1  简单画刷 127 
    5.3.2  位图画刷 128 
    5.3.3  透明画刷 131 
    5.4 绘制连续线条 136 
    5.5 绘制扇形效果的线条 138 
    5.6 本章小结 140 
    第6章  文本编程 141 
    6.1 插入符 141 
    6.1.1  创建文本插入符 141 
    6.1.2  创建图形插入符 145 
    6.2 窗口重绘 146 
    6.2.1  OnDraw函数 147 
    6.2.2  添加字符串资源 149 
    6.3 路径 151 
    6.4 字符输入 155 
    6.4.1  设置字体 160 
    6.4.2  字幕变色功能的实现 162 
    6.5 本章小结 167 
    第7章  菜单 168 
    7.1 菜单命令响应函数 168 
    7.2 菜单命令的路由 171 
    7.2.1  程序类对菜单命令的响应顺序 171 
    7.2.2  Windows消息的分类 172 
    7.2.3  菜单命令路由的过程 172 
    7.3 基本菜单操作 174 
    7.3.1  标记菜单 175 
    7.3.2  默认菜单项 177 
    7.3.3  图形标记菜单 179 
    7.3.4  禁用菜单项 182 
    7.3.5  移除和装载菜单 185 
    7.3.6  MFC菜单命令更新机制 188 
    7.3.7  快捷菜单 192 
    7.4 动态菜单操作 195 
    7.4.1  添加菜单项目 195 
    7.4.2  插入菜单项目 197 
    7.4.3  删除菜单 200 
    7.4.4  动态添加的菜单项的命令响应 200 
    7.5 电话本示例程序 202 
    7.5.1  动态添加子菜单的实现 203 
    7.5.2  显示输入的字符 205 
    7.5.3  添加菜单项及其命令响应函数 207 
    7.5.4  框架类窗口截获菜单命令消息 210 
    7.6 本章小结 217 
    第8章  对话框(一) 218 
    8.1 对话框基本知识 218 
    8.1.1  常用控件介绍 218 
    8.1.2  对话框的种类 220 
    8.2 对话框的创建和显示 220 
    8.2.1  模态对话框的创建 224 
    8.2.2  非模态对话框的创建 225 
    8.3 动态创建按钮 227 
    8.4 控件的访问 231 
    8.4.1  控件的调整 232 
    8.4.2  静态文本控件 233 
    8.4.3  编辑框控件 235 
    8.5 对话框伸缩功能的实现 247 
    8.6 输入焦点的传递 253 
    8.7 默认按钮的进一步说明 261 
    8.8 本章小结 261 
    第9章  对话框(二) 262 
    9.1  “逃跑”按钮的实现 262 
    9.2 属性表单和向导的创建 269 
    9.2.1  创建属性页 272 
    9.2.2  创建属性表单 277 
    9.2.3  向导的创建 279 
    9.3 本章小结 296 
    附录 296 
    第10章  定制应用程序外观 299 
    10.1 修改应用程序窗口的外观 299 
    10.1.1  在窗口创建之前修改 299 
    10.1.2  在窗口创建之后修改 302 
    10.2 修改窗口的光标、图标和背景 304 
    10.2.1  在窗口创建之前修改 304 
    10.2.2  在窗口创建之后修改 308 
    10.3 模拟动画图标 310 
    10.3.1  加载图标资源 310 
    10.3.2  定时器的处理 312 
    10.4 工具栏编程 314 
    10.4.1  在工具栏上添加和删除按钮 315 
    10.4.2  创建工具栏 316 
    10.5 状态栏编程 325 
    10.6 进度栏编程 332 
    10.6.1  在窗口中创建进度栏 332 
    10.6.2  在状态栏的窗格中创建进度栏 333 
    10.7 在状态栏上显示鼠标当前位置 340 
    10.8 本章小结 343 
    第11章  绘图控制 344 
    11.1 简单绘图 344 
    11.2 设置对话框 349 
    11.2.1  设置线宽 349 
    11.2.2  设置线型 353 
    11.3 颜色对话框 355 
    11.4 字体对话框 360 
    11.5 示例对话框 365 
    11.6 改变对话框和控件的背景及文本颜色 368 
    11.6.1  改变整个对话框及其上子控件的背景色 369 
    11.6.2  仅改变某个子控件的背景及文本颜色 370 
    11.6.3  改变控件上的文本字体 373 
    11.6.4  改变按钮控件的背景色及文本颜色 375 
    11.7 位图的显示 379 
    11.8 本章小结 384 
    第12章  图形的保存和重绘 385 
    12.1 坐标空间和转换 385 
    12.1.1  坐标空间 385 
    12.1.2  转换 386 
    12.1.3  逻辑坐标和设备坐标 390 
    12.2 图形的保存和重绘 392 
    12.2.1  集合类CPtrArray 394 
    12.2.2  OnPaint与OnDraw 398 
    12.3 窗口滚动功能的实现 400 
    12.3.1  CScrollView类 400 
    12.3.2  图形错位现象 402 
    12.4 元文件 407 
    12.4.1  元文件的使用 407 
    12.4.2  元文件的保存与打开 411 
    12.5 兼容设备描述表 413 
    12.6 本章小结 416 
    第13章  文件和注册表操作 417 
    13.1 const char*和char* const 417 
    13.1.1  const char* 417 
    13.1.2  char* const 418 
    13.2 C语言对文件操作的支持 419 
    13.2.1  文件的打开 419 
    13.2.2  文件的写入 420 
    13.2.3  文件的关闭 422 
    13.2.4  fflush函数 423 
    13.2.5  文件指针定位 423 
    13.2.6  文件的读取 424 
    13.2.7  二进制文件和文本文件 428 
    13.2.8  文本方式和二进制方式 430 
    13.3 C++对文件操作的支持 433 
    13.4 Win32 API对文件操作的支持 435 
    13.4.1  文件的创建和打开 435 
    13.4.2  文件的写入 439 
    13.4.3  文件的读取 440 
    13.5 MFC对文件操作的支持 442 
    13.5.1  文件的写入 443 
    13.5.2  文件的读取 443 
    13.5.3  CFileDialog类 444 
    13.6 INI文件的访问 449 
    13.6.1  INI文件的结构 449 
    13.6.2  INI文件的写入 450 
    13.6.3  INI文件的读取 451 
    13.7 CWinApp的注册表读写函数 453 
    13.8 注册表的编程 455 
    13.8.1  注册表API 455 
    13.8.2  注册表访问示例 462 
    13.9 本章小结 468 
    第14章  文档与串行化 469 
    14.1 使用CArchive类对文件进行读写操作 469 
    14.2 MFC框架程序提供的文件新建功能 472 
    14.2.1  IDR_MAINFRAME字符串资源 473 
    14.2.2  OnNewDocument函数的调用过程 477 
    14.3 文档串行化 485 
    14.3.1  文档类的Serialize函数 485 
    14.3.2  MFC框架对Serialize函数的调用过程 487 
    14.4 可串行化的类 495 
    14.4.1  实现类对串行化的支持 495 
    14.4.2  利用可串行化类的Serialize函数保存和加载对象 497 
    14.4.3  版本号 501 
    14.4.4  利用CObArray类对串行化的支持保存和加载数据 502 
    14.5 文档对象数据的销毁 506 
    14.6 本章小结 510 
    第15章  网络编程 511 
    15.1 计算机网络基本知识 511 
    15.1.1  IP地址 512 
    15.1.2  协议 512 
    15.1.3  网络的状况 513 
    15.1.4  网络异质性问题的解决 513 
    15.1.5  ISO/OSI七层参考模型 513 
    15.1.6  数据封装 516 
    15.1.7  TCP/IP模型 516 
    15.1.8  端口 517 
    15.1.9  套接字(socket)的引入 517 
    15.1.10  网络字节顺序 518 
    15.1.11  客户机/服务器模式 518 
    15.2 Windows Sockets的实现 519 
    15.2.1  套接字的类型 519 
    15.2.2  基于TCP(面向连接)的socket编程 519 
    15.2.3  基于UDP(面向无连接)的socket编程 520 
    15.3 相关函数 520 
    15.3.1  WSAStartup函数 521 
    15.3.2  socket函数 522 
    15.3.3  bind函数 522 
    15.3.4  inet_addr和inet_ntoa函数 523 
    15.3.5  inet_pton和inet_ntop函数 524 
    15.3.6  listen函数 525 
    15.3.7  accept函数 525 
    15.3.8  send函数 525 
    15.3.9  recv函数 526 
    15.3.10  connect 526 
    15.3.11  recvfrom 526 
    15.3.12  sendto函数 527 
    15.3.13  htons和htonl函数 527 
    15.4 基于TCP的网络应用程序的编写 528 
    15.4.1  服务器端程序 528 
    15.4.2  客户端程序 532 
    15.5 基于UDP的网络应用程序的编写 535 
    15.5.1  服务器端程序 535 
    15.5.2  客户端程序 537 
    15.6 基于UDP的简单聊天程序 538 
    15.6.1  服务器端程序 539 
    15.6.2  客户端程序 542 
    15.7 本章小结 544 
    第16章  多线程 545 
    16.1 基本概念 545 
    16.1.1  进程 545 
    16.1.2  线程 549 
    16.2 线程创建函数 550 
    16.3 简单多线程示例 551 
    16.4 线程同步 555 
    16.4.1  火车站售票系统模拟程序 555 
    16.4.2  多线程程序容易出现的问题 557 
    16.4.3  利用互斥对象实现线程同步 558 
    16.5 保证应用程序只有一个实例运行 566 
    16.6 网络聊天室程序的实现 567 
    16.6.1  加载套接字库 568 
    16.6.2  创建并初始化套接字 569 
    16.6.3  实现接收端功能 570 
    16.6.4  实现发送端功能 575 
    16.7 本章小结 577 
    第17章  线程同步与异步套接字编程 578 
    17.1 事件对象 578 
    17.1.1  创建事件对象 578 
    17.1.2  设置事件对象状态 579 
    17.1.3  重置事件对象状态 579 
    17.1.4  利用事件对象实现线程同步 579 
    17.1.5  保证应用程序只有一个实例运行 586 
    17.2 关键代码段 586 
    17.2.1  相关的API函数 587 
    17.2.2  利用关键代码段实现线程同步 587 
    17.3 线程死锁 590 
    17.4 互斥对象、事件对象与关键代码段的比较 594 
    17.5 基于消息的异步套接字 594 
    17.5.1  相关函数说明 595 
    17.5.2  网络聊天室程序的实现 600 
    17.6 本章小结 610 
    第18章  进程间通信 611 
    18.1 剪贴板 611 
    18.1.1  数据发送 612 
    18.1.2  数据接收 616 
    18.2 匿名管道 618 
    18.2.1  基础知识 618 
    18.2.2  进程的创建 619 
    18.2.3  父进程的实现 624 
    18.2.4  子进程的实现 628 
    18.3 命名管道 631 
    18.3.1  基础知识 631 
    18.3.2  服务器端程序 635 
    18.3.3  客户端程序 640 
    18.4 邮槽 643 
    18.4.1  服务器端程序 644 
    18.4.2  客户端程序 645 
    18.5 本章小结 648 
    第19章  ActiveX控件 649 
    19.1 ActiveX控件 649 
    19.1.1  ActiveX控件的好处 650 
    19.1.2  MFC ActiveX控件向导 650 
    19.1.3  ActiveX控件的注册 654 
    19.1.4  ActiveX控件的测试 656 
    19.1.5  时钟控件的实现 659 
    19.2 属性 660 
    19.2.1  标准属性 661 
    19.2.2  自定义属性 666 
    19.3 方法 672 
    19.4 事件 674 
    19.4.1  标准事件 675 
    19.4.2  自定义事件 676 
    19.5 属性的持久性 679 
    19.6 环境属性 681 
    19.7 ActiveX控件测试程序 683 
    19.8 本章小结 686 
    第20章  动态链接库 688 
    20.1 动态链接库概述 688 
    20.2 DLL的创建和使用 690 
    20.3 隐式链接方式加载DLL 693 
    20.4 完善DLL例子 699 
    20.5 从DLL中导出C++类 701 
    20.6 解决名字改编问题 704 
    20.7 显示加载方式加载DLL 709 
    20.8 DllMain函数 715 
    20.9 MFC DLL 716 
    20.10 本章小结 717 
    第21章  HOOK编程 718 
    21.1 HOOK编程 718 
    21.2 本章小结 738 

查看详情
相关图书 / 更多
VC++深入详解(第3版)(基于VisualStudio2017)
VC++ 2008专题应用程序开发实例精讲
张忠帅 编
VC++深入详解(第3版)(基于VisualStudio2017)
VC++图像处理程序设计
杨淑莹 编著
VC++深入详解(第3版)(基于VisualStudio2017)
VCD机修理从入门到精通——家电维修从入门到精通丛书
张雯 编;刘建青
VC++深入详解(第3版)(基于VisualStudio2017)
VC++和BC++数值分析类库
粟塔山
VC++深入详解(第3版)(基于VisualStudio2017)
VC++高级编程技巧与示例
胡峪、刘静 编著
VC++深入详解(第3版)(基于VisualStudio2017)
VCD、LD、DVD维修精华
《家用电器维修精华丛书》编辑委员会编著
VC++深入详解(第3版)(基于VisualStudio2017)
VC-E合作治理机制与技术创新绩效关系研究
王兰 著
VC++深入详解(第3版)(基于VisualStudio2017)
VCD身边的礼仪
金正昆
VC++深入详解(第3版)(基于VisualStudio2017)
VCD制作真容易——家庭影像全攻略丛书
王永辉 编
VC++深入详解(第3版)(基于VisualStudio2017)
VCP VMware Certified Professional vSphere 4 Study Guide (Exam VCP410) with CD-ROM
Robert Schmidt 著
VC++深入详解(第3版)(基于VisualStudio2017)
VC++程序设计深度解析与指导
杨平乐、孙娜 主编
VC++深入详解(第3版)(基于VisualStudio2017)
VC/MFC应用程序开发
方辉云 编;何友鸣;兰涌