VC++深入详解

出版时间:2012-7  出版社:电子工业出版社  作者:孙鑫  页数:767  字数:1257000  
Tag标签:无  

前言

修 订 版 前 言从本书第1版面市,一晃6年过去了,作为一本技术图书,《VC++深入详解》的生命力让我惊叹,时至今日,该书仍畅销不衰。想当初在出版本书时,笔者还担心VC++图书看的人会不会很少啊 。6年时光,笔者见证了很多程序爱好者通过本书进入软件开发岗位,在给企业做培训时,经常有企业同行告诉笔者他是看着笔者的图书和视频成长的,这让笔者莫大的欣慰。本书成书说来也是偶然,当初录制了一套《VC++深入详解》视频,在网络上流传很广,很多VC++程序员都是通过学习该套视频而走上的软件开发岗位,然而由于视频不利于知识的复习和查找,因此很多读者来信希望能出一套纸质的教材,后来在博文视点公司郭立总编和余安萍的帮助下,最终本书得以面市。本书面市后,很多读者给予了本书极高的评价,将之和《深入浅出MFC》相提并论,甚至将笔者和侯捷老师等同,这让笔者诚惶诚恐。从技术角度上来说,笔者和侯捷老师相差甚远,从图书角度上来,本书对MFC的阐述部分仅仅是让读者快速入门,能快速应用于开发,深入地理解MFC框架的各种原理和设计思想,还需要进一步参看《深入浅出MFC》。读者一定要正确的对待本书,切不可因本书而产生C++编程不过如此的念头,那样实非此书之福,也非读者之福。C++编程领域浩瀚博大,本书只是把读者领入了C++开发的道路,前方的路还很远很长,衷心希望读者能够继续学习,继续成长,终有一天成长为C++领域的编程高手。本书读者对象本书读者群包括: 掌握了C语言,想进一步学习Windows编程的读者。 学习VC++多年,但始终没有真正入门的读者。 正在从事VC++开发的初级程序员。 有一定VC++开发经验,想要系统地学习VC++的读者。在本书的配套光盘中,提供了一套完整的VC++教学视频,以帮助读者更快、更好地掌握VC++编程。关于本书配套光盘的内容,请参见“本书的配套光盘说明”。本书的内容组织本书在内容的组织上循序渐进、由浅入深;在知识的介绍上,从内到外、从原理到实践。第1章帮助读者掌握Windows平台下程序运行的内部机制。第2章帮助读者复习C++中的重要知识,为后续知识的学习打下良好的基础。第3章重点剖析MFC框架程序的运行脉络,并与第1章的知识做对照,为读者彻底扫清学习MFC的迷雾。相信通过这章的学习,很多以前学过MFC的读者都会有一种恍然大悟的感觉。前三章可以归为基础部分,从第4章开始就是实际应用开发的讲解了,包括绘图、文本、菜单、对话框、定制程序外观、图形保存和重绘、文件和注册表操作、网络编程、多线程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题,并且每一章都有一个完整的例子。本书的讲解理论结合实际,选用的例子和代码具有相当的代表性和实用价值,我和我的学员曾经在实际开发项目的过程中就直接使用过很多书中的代码。本书的实例程序作者在编写本书时,使用的操作系统是Windows 2000 Service Pack 4,开发工具是VC++ 6.0 SP5,MSDN是2001年1月版的(提示:与VC++6.0匹配的MSDN截止到2001年10月版,之后的版本都与.NET匹配,可能与本书使用的版本有所不同,如果需要匹配VC++6.0的MSDN,可以通过百度(www.baidu.com)或者Google(www.google.com)搜索关键字“MSDN 2001”,进行下载)。本书所有的实例程序都在上述环境中运行正常。提示:由于QQ运行时占用了多个端口,可能与本书例子中的网络程序使用的端口冲突,在运行本书例子中的网络程序时,如果出错,请更换程序中的端口号,或者关闭QQ后再运行书中的程序。学习建议配套光盘提供的视频课数与本书的章数是一一对应的,建议读者先看视频,有一个初步印象后再看相应的章节,这样能够更快、更好地掌握VC++编程。在学习本书时,建议读者多动脑(想想为什么),多动手(将知识转换为自己的)。在理解的前提下,独立地编写出书中每章的例子程序,可以作为是否掌握本章内容的一个考核。由于作者的水平有限,错误和疏漏之处在所难免,欢迎广大技术专家和读者指正。作者的联系方式是csunxin@sina.com,读者也可以上作者的网站发表意见,网址是www.phome.asia和www.sunxin.org。致 谢 本书在编著过程中,赵岚岚、高莹、张素芳、瞿瑞强、张欣、张玲、窦建涛、涂君君、邵佳赜、马文勇参与编著,这里一并感谢。封面的漫画头像由王裕民绘制,在此表示感谢。作 者 2012年5月本书的配套光盘说明本书的配套光盘提供了两部分内容:本书所有实例的代码;VC++教学视频(Flash格式)。实例代码配套光盘中的实例代码是按照章节的顺序提供的,例如,第7章的例子程序位于光盘的Chapter7目录下。VC++教学视频本套教学视频由作者本人录制,为了帮助读者更好地掌握VC++开发,作者花费了大量的时间和精力将AVI格式的视频转换为Flash格式,免费提供给读者使用,希望读者能够从中受益。这套视频的内容简介如下所示。Lesson1:Windows程序运行原理及程序编写流程,窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与cdecl调用规范的比较,初学者常犯错误及注意事项。Lesson2:C++经典语法与应用,类的编写与应用,构造与析构函数,函数的重载,类的继承,函数覆盖,基类与派生类的构造函数、析构函数调用顺序,如何在派生类构造函数中向基类的构造函数传递参数,this成员变量,类型转换的内幕,虚拟函数与多态性,引用和指针变量的区别与共同处。VC工程的编译原理与过程,将工程中不同的类拆分到不同的文件中,每一个类由一个.h和.cpp文件共同完成,头文件重复定义问题的解决,培养了学员良好的编程习惯,也为以后分析MFC AppWizard生成的工程奠定良好基础。Lesson3:讲述MFC AppWizard的原理与MFC程序框架的剖析。AppWizard是一个源代码生成工具,是计算机辅助程序设计工具,WinMain在MFC程序中是如何从源程序中被隐藏的,theApp全局变量是如何被分配的,MFC框架中的几个类的作用与相互关系,MFC框架窗口是如何产生和销毁的,对窗口类的PreCreateWidow和OnCreate两个函数的着重分析,Windows窗口与C++中的CWnd类的关系。Lesson4:MFC消息映射机制的剖析,讲述如何运用ClassWizard,理解发送给窗口的消息是如何被MFC框架通过窗口句柄映射表和消息映射表来用窗口类的函数进行响应的。掌握设备描述表及其封装类CDC的使用,CDC是如何与具体的设备发生关联的,融合具体的画图程序进行分析。如何设置封闭图形的填充刷子(位图画刷与透明画刷的使用)。Lesson5:掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString类的使用。通过对卡拉OK程序的编写,讲解定时器的使用和DrawText函数的巧妙运用,讲解如何使用CDC的裁减功能。Lesson6:菜单的工作原理及编写应用,菜单命令消息在MFC框架程序的几个类中的传递顺序和处理过程。标记菜单、默认菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,弹出快捷菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的子窗口具有最优先的处理机会)。动态菜单的编写,如何让程序在运行时产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString类的应用。Lesson7:对话框用户界面程序的编写,如何向对话框控件关联数据成员及其实现机理,如何利用对话框类的成员函数向控件发送消息和获取对话框控件的类指针,如何直接利用对话框控件类操纵对话框控件(发送消息和直接调用成员函数),如何在程序运行时产生和销毁控件。对话框控件的几种操作方式的优劣比较分析。如何实现对话框的部分收缩和展开。如何让对话框上的文本框在程序启动后立即获得焦点,如何利用SetWindowLong改变窗口的回调函数,通过改变文本框的默认回车处理方式进行演示。实现多个输入文本框间通过回车逐一向下传递焦点的另一种巧妙方法(用默认按钮来处理)。Lesson8:逃跑按钮的巧妙实现。如何制作属性页对话框和向导对话框,融合讲解组合框(如何调整组合框的大小)、列表框、单选按钮、复选按钮等常用对话框控件的多种使用方法。如何限制用户在不满足设定的条件时切换到其他属性页和向导页。Lesson9:如何修改MFC AppWizard向导生成的框架程序的外观和大小,修改图标、光标、背景的三种方法。如何增加和删除工具栏按钮,如何给应用程序增加工具栏,如何显示和隐藏工具栏。定制状态栏,在状态栏中添加时钟显示,CTime类及其用法。在状态栏中添加进度条(主窗口产生后立即产生进度条的巧妙思想,不能在OnCreate函数中直接处理,要用到自定义消息的方法)。鼠标坐标显示,在CView中获取状态栏对象的几种方式。如何为应用程序添加启动画面。Lesson10:图形的绘制,如何使用自定义画笔(颜色,线宽,线型)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,对按钮控件的特殊处理。如何在窗口中显示一幅位图。Lesson11:如何让CDC上输出的文字、图形具有保持功能,集合类CPtrArray的使用,CPaintDC与CClientDC的区别与应用,OnPa

内容概要

  从实际应用入手,由浅入深、循序渐进地讲述Windows程序内部运行机制、MFC框架、文本、菜单、对话框、文件操作、网络编程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题。全书还贯穿作者多年来学习编程的一些经验,以及一些学习方法的建议,为读者进一步的学习提供指导。
  本书不同于一般的讲述VC++使用的书籍,本书主要从程序内部运行的机制和MFC程序的组织脉络入手,使读者在学习VC++编程知识时,既能够知其然,又能知其所以然,从而帮助读者从根本上理解和掌握Windows的程序设计。
  本书的配套光盘还免费提供近45小时的VC++教学视频,读者在学习的过程中可以将视频和书互为参考,配合学习,这样可以更快、更好地掌握VC++编程。

书籍目录

第1章 Windows程序内部运行机制
 1.1 API与SDK
 1.2 窗口与句柄
 1.3 消息与消息队列
 1.4 WinMain函数
 1.4.1 WinMain函数的定义
 1.4.2 窗口的创建
 1.4.3 消息循环
 1.4.4 编写窗口过程函数
 1.5 动手写第一个Windows程序
 1.6 消息循环的错误分析
 1.7 变量的命名约定
 1.8 小结
第2章 掌握C++
 2.1 从结构到类
 2.1.1 结构体的定义
 2.1.2 结构体与类
 2.2 C++的特性
 2.2.1 类与对象
 2.2.2 构造函数
 2.2.3 析构函数
 2.2.4 函数的重载
 2.2.5 this指针
 2.2.6 类的继承
 2.2.7 虚函数与多态性、
 2.2.7 纯虚函数
 2.2.8 函数的覆盖和隐藏
 2.2.9 引用
 2.2.10 C++类的设计习惯及头文件
 2.2.10 重复包含问题的解决
 2.2.11 VC++程序编译链接的
 2.2.11 原理与过程
第3章 MFC框架程序剖析
 3.1 MFC AppWizard
 3.2 基于MFC的程序框架剖析
 3.2.1 MFC程序中的
 3.2.1 WinMain函数
 3.2.2 MFC框架窗口
 3.2.3 消息循环
 3.2.4 窗口过程函数
 3.2.5 文档/视类结构
 3.2.6 帮助对话框类
 3.3 窗口类、窗口类对象与窗口
 3.3.1 三者之间关系
 3.3.2 在窗口中显示按钮
 3.4 本章小结
第4章 简单绘图
 4.1 MFC消息映射机制
 4.1.1 ClassWizard
 4.1.2 消息映射机制
 4.2 绘制线条
 4.2.1 利用SDK全局函数实现
 4.2.4 画线功能
 4.2.2 利用MFC的CDC类实现
 4.2.4 画线功能
 4.2.3 利用MFC的CClientDC类
 4.2.4 实现画线功能
 4.2.4 利用MFC的CWindowDC类
 4.2.4 实现画线功能
 4.2.5 在桌面窗口中画线
 4.2.6 绘制彩色线条
 4.3 使用画刷绘图
 4.3.1 简单画刷
 4.3.2 位图画刷
 4.3.3 透明画刷
 4.4 绘制连续线条
 4.5 绘制扇形效果的线条
第5章 文本编程
 5.1 插入符
 5.1.1 创建文本插入符
 5.1.2 创建图形插入符
 5.2 窗口重绘
 5.2.1 OnDraw函数
 5.2.2 添加字符串资源
 5.3 路径
 5.4 字符输入
 5.4.1 设置字体
 5.4.2 字幕变色功能的实现
 5.5 本章小结
第6章 菜单
 6.1 菜单命令响应函数
 6.2 菜单命令的路由
 6.2.1 程序类对菜单命令的
 4.2.4 响应顺序
 6.2.2 Windows消息的分类
 6.2.3 菜单命令的路由
 6.3 基本菜单操作
 6.3.1 标记菜单
 6.3.2 默认菜单项
 6.3.3 图形标记菜单
 6.3.4 禁用菜单项
 6.3.5 移除和装载菜单
 6.3.6 MFC菜单命令更新机制
 6.3.7 快捷菜单
 6.4 动态菜单操作
 6.4.1 添加菜单项目
 6.4.2 插入菜单项目
 6.4.3 删除菜单
 6.4.4 动态添加的菜单项的
 6.4.4 命令响应
 6.5 电话本示例程序
 6.5.1 动态添加子菜单的实现
 6.5.2 显示输入的字符
 6.5.3 添加菜单项及其命令
 6.5.3 响应函数
 6.5.4 框架类窗口截获菜单
 6.5.3 命令消息
 6.6 本章小结
第7章 对话框(一)
 7.1 对话框基本知识
 7.1.1 常用控件介绍
 7.1.2 对话框的种类
 7.2 对话框的创建和显示
 7.2.1 模态对话框的创建
 7.2.2 非模态对话框的创建
 7.3 动态创建按钮
 7.4 控件的访问
 7.4.1 控件的调整
 7.4.2 静态文本控件
 7.4.3 编辑框控件
 7.5 对话框伸缩功能的实现
 7.6 输入焦点的传递
 7.7 默认按钮的进一步说明
 7.8 本章小结
第8章 对话框(二)
 8.1 “逃跑”按钮的实现
 8.2 属性表单和向导的创建
 8.2.1 创建属性页
 8.2.2 创建属性表单
 8.2.3 向导的创建
 8.3 本章小结
 附录
第9章 定制应用程序外观
 9.1 修改应用程序窗口的
 9.1 外观
 9.1.1 在窗口创建之前修改
 9.1.2 在窗口创建之后修改
 9.2 修改窗口的光标、
 9.2 图标和背景
 9.2.1 在窗口创建之前修改
 9.2.2 在窗口创建之后修改
 9.3 模拟动画图标
 9.3.1 加载图标资源
 9.3.2 定时器的处理
 9.4 工具栏编程
 9.4.1 在工具栏上添加和
 9.4.1 删除按钮
 9.4.2 创建工具栏
 9.5 状态栏编程
 9.6 进度栏编程
 9.6.1 在窗口中创建进度栏
 9.6.2 在状态栏的窗格中创建
 9.6.2 进度栏
 9.7 在状态栏上显示鼠标
 9.7 当前位置
 9.8 启动画面
 9.9 本章小结
第10章 绘图控制
 10.1 简单绘图
 10.2 设置对话框
 10.2.1 设置线宽
 10.2.2 设置线型
 10.3 颜色对话框
 10.4 字体对话框
 10.5 示例对话框
 10.6 改变对话框和控件的背景及
 10.6 文本颜色
 10.6.1 改变整个对话框及其上子
 10.6.1 控件的背景色
 10.6.2 仅改变某个子控件的背景
 10.6.1 及文本颜色
 10.6.3 改变控件上的文本字体
 10.6.4 改变按钮控件的背景色
 10.6.1 及文本颜色
 10.7 位图的显示
 10.8 本章小结
第11章 图形的保存和重绘
 11.1 坐标空间和转换
 11.1.1 坐标空间
 11.1.2 转换
 11.1.3 逻辑坐标和设备坐标
 11.2 图形的保存和重绘
 11.2.1 集合类CPtrArray
 11.2.2 OnPaint与OnDraw
 11.3 窗口滚动功能的实现
 11.3.1 CScrollView类
 11.3.2 图形错位现象
 11.4 元文件
 11.4.1 元文件的使用
 11.4.2 元文件的保存
 11.4.2 与打开
 11.5 兼容设备描述表
 11.6 本章小结
第12章 文件和注册表操作
 12.1 const char*和char* const
 12.1.1 const char*
 12.1.2 char* const
 12.2 C语言对文件操作的支持
 12.2.1 文件的打开
 12.2.2 文件的写入
 12.2.3 文件的关闭
 12.2.4 fflush函数
 12.2.5 文件指针定位
 12.2.6 文件的读取
 12.2.7 二进制文件和文本文件
 12.2.8 文本方式和二进制方式
 12.3 C++对文件操作的支持
 12.4 Win32 API对文件操作
 12.4 的支持
 12.4.1 文件的创建和打开
 12.4.2 文件的写入
 12.4.3 文件的读取
 12.5 MFC对文件操作的支持
 12.5.1 文件的写入
 12.5.2 文件的读取
 12.5.3 CFileDialog类
 12.6 Win.ini文件的访问
 12.6.1 Win.ini文件的结构
 12.6.2 Win.ini文件的写入
 12.6.3 Win.ini文件的读取
 12.7 注册表的编程
 12.7.1 注册表API
 12.7.2 注册表访问示例
 12.8 本章小结
第13章 文档与串行化
 13.1 使用CArchive类对文件
 13.1 进行读写操作
 13.2 MFC框架程序提供的文件
 13.2 新建功能
 13.2.1 IDR_MAINFRAME
 13.2.1 字符串资源
 13.2.2 OnNewDocument函数的
 13.2.2 调用过程
 13.3 文档串行化
 13.3.1 文档类的Serialize函数
 13.3.2 MFC框架对Serialize
 13.3.2 函数的调用过程
 13.4 可串行化的类
 13.4.1 实现类对串行化的支持
 13.4.2 利用可串行化类的Serialize
 13.4.2 函数保存和加载对象
 13.4.3 版本号
 13.4.4 利用CObArray类对串行化
 13.4.4 的支持保存和加载数据
 13.5 文档对象数据的销毁
 13.6 本章小结
第14章 网络编程
 14.1 计算机网络基本知识
 14.1.1 IP地址
 14.1.2 协议
 14.1.3 网络的状况
 14.1.4 网络异质性问题的解决
 14.1.5 ISO/OSI七层参考模型
 14.1.6 数据封装
 14.1.7 TCP/IP模型
 14.1.8 端口
 14.1.9 套接字(socket)的引入
 14.1.10 网络字节顺序
 14.1.11 客户机/服务器模式
 14.2 Windows Sockets的实现
 14.2.1 套接字的类型
 14.2.2 基于TCP(面向连接)
 14.2.2 的socket编程
 14.2.3 基于UDP(面向无连接)
 14.2.2 的socket编程
 14.3 相关函数
 14.3.1 WSAStartup函数
 14.3.2 socket函数
 14.3.3 bind函数
 14.3.4 inet_addr和inet_ntoa函数
 14.3.5 listen函数
 14.3.6 accept函数
 14.3.7 send函数
 14.3.8 recv函数
 14.3.9 connect
 14.3.10 recvfrom
 14.3.11 sendto函数
 14.3.12 htons和htonl函数
 14.4 基于TCP的网络应用程序
 14.4 的编写
 14.4.1 服务器端程序
 14.4.2 客户端程序
 14.5 基于UDP的网络应用程序
 14.5 的编写
 14.5.1 服务器端程序
 14.5.2 客户端程序
 14.6 基于UDP的简单聊天程序
 14.6.1 服务器端程序
 14.6.2 客户端程序
 14.7 本章小结
第15章 多线程
 15.1 基本概念
 15.1.1 进程
 15.1.2 线程
 15.2 线程创建函数
 15.3 简单多线程示例
 15.4 线程同步
 15.4.1 火车站售票系统模拟程序
 15.4.2 多线程程序容易出现的问题
 15.4.3 利用互斥对象实现线程同步
 15.5 保证应用程序只有一个
 15.5 实例运行
 15.6 网络聊天室程序的实现
 15.6.1 加载套接字库
 15.6.2 创建并初始化套接字
 15.6.3 实现接收端功能
 15.6.4 实现发送端功能
 15.7 本章小结
第16章 线程同步与异步
第16章 套接字编程
 16.1 事件对象
 16.1.1 创建事件对象
 16.1.2 设置事件对象状态
 16.1.3 重置事件对象状态
 16.1.4 利用事件对象实现线程同步
 16.1.5 保证应用程序只有一个
 16.1.5 实例运行
 16.2 关键代码段
 16.2.1 相关的API函数
 16.2.2 利用关键代码段实现
 16.2.2 线程同步
 16.3 线程死锁
 16.4 互斥对象、事件对象与
 16.4 关键代码段的比较
 16.5 基于消息的异步套接字
 16.5.1 相关函数说明
 16.5.2 网络聊天室程序的实现
 16.6 本章小结
第17章 进程间通信
 17.1 剪贴板
 17.1.1 数据发送
 17.1.2 数据接收
 17.2 匿名管道
 17.2.1 基础知识
 17.2.2 进程的创建
 17.2.3 父进程的实现
 17.2.4 子进程的实现
 17.3 命名管道
 17.3.1 基础知识
 17.3.2 服务器端程序
 17.3.3 客户端程序
 17.4 邮槽
 17.4.1 服务器端程序
 17.4.2 客户端程序
 17.5 本章小结
第18章 ActiveX控件
 18.1 ActiveX控件
 18.1.1 ActiveX控件的好处
 18.1.2 MFC ActiveX
 18.1.2 ControlWizard
 18.1.3 ActiveX控件的测试
 18.1.4 ActiveX控件的注册
 18.1.5 时钟控件的实现
 18.2 属性
 18.2.1 标准属性
 18.2.2 自定义属性
 18.3 方法
 18.4 事件
 18.4.1 标准事件
 18.4.2 自定义事件
 18.5 属性的持久性
 18.6 环境属性
 18.7 ActiveX控件测试程序
 18.8 本章小结
 18.9 问题
第19章 动态链接库
 19.1 动态链接库概述
 19.1.1 静态库和动态库
 19.1.2 使用动态链接库的好处
 19.1.3 动态链接库的加载
 19.2 Win32 DLL的创建和使用
 19.2.1 Dumpbin命令
 19.2.2 从DLL中导出函数
 19.3 隐式链接方式加载DLL
 19.3.1 利用extern声明
 19.3.1 外部函数
 19.3.2 Depends工具
 19.3.3 利用_declspec(dllimport)
 19.3.3 声明外部函数
 19.4 完善Win32 DLL例子
 19.5 从DLL中导出C++类
 19.6 解决名字改编问题
 19.7 显示加载方式加载DLL
 19.7.1 LoadLibary函数
 19.7.2 调用约定
 19.7.3 根据序号访问DLL中的
 19.7.3 导出函数
 19.8 DllMain函数
 19.9 MFC DLL
 19.10 本章小结
第20章 HOOK和数据库访问
 20.1 HOOK编程
 20.1.1 基本知识
 20.1.2 进程内钩子
 20.1.3 全局钩子
 20.2 数据库访问技术
 20.3 在VB中利用ADO访问
 20.3 数据库
 20.3.1 利用ADO控件访问
 20.3.1 数据库
 20.3.2 利用ADO对象访问
 20.3.1 数据库
 20.4 在VC中利用ADO访问
 20.4 数据库
 20.5 本章小结

章节摘录

  第26行,调用TextOut函数在(0,0)的位置输出一个网址。当发生重绘时,窗口中的文字和图形都会被擦除。在擦除背景后,TextOut函数又一次执行,在窗口中再次绘制出。这个过程对用户来说是透明的,用户并不知道程序执行的过程,给用户的感觉就是你在响应WM_PAINT消息的代码中输出的文字或图形始终保持在窗口中。换句话说,如果我们想要让某个图形始终在窗口中显示,就应该将图形的绘制操作放到响应WM_PAINT消息的代码中。  那么系统为什么不直接保存窗口中的图形数据,而要由应用程序不断地进行重绘呢?这主要是因为在图形环境中涉及的数据量太大,为了节省内存的使用,提高效率,而采用了重绘的方式。  在响应WM_PAINT消息的代码中,要得到窗口的DC,必须调用BeginPaint函数。BeginPaint函数也只能在WM_PAINT消息的响应代码中使用,在其他地方,只能使用GetDC来得到DC的句柄。另外,BeginPaint函数得到的DC,必须用EndPaint函数去释放。  29~34行代码:当用户单击窗口上的关闭按钮时,系统将给应用程序发送一条WM_CLOSE消息。在这段消息响应代码中,我们首先弹出一个消息框,让用户确认是否结束。如果用户选择“否”,则什么也不做;如果用户选择“是”,则调用DestroyWindow函数销毁窗口,DestroyWindow函数在销毁窗口后会向窗口过程发送WM_DESTROY消息。注意,此时窗口虽然销毁了,但应用程序并没有退出。有不少初学者错误地在WM_DESTROY消息的响应代码中,提示用户是否退出,而此时窗口已经销毁了,即使用户选择不退出,也没有什么意义了。所以如果你要控制程序是否退出,应该在WM_CLOSE消息的响应代码中完成。  ……

图书封面

图书标签Tags

评论、评分、阅读与下载


    VC++深入详解 PDF格式下载


用户评论 (总计141条)

 
 

  •   还记得是3月24号时拿到这本书的!在此之前我花了一个星期了解了一下MFC,之间换了三本书吧,换的原因是觉得不太合适。怎么说呢?就是觉得讲得浅了点。这几本书都是在讲操作,而涉及mfc设计机制方面的东西则基本没有!所以,我才换了这本。看完之后,我觉得这确实算是学习mfc入门较好的书籍!建议大家在学习时重点研读第一章、第三章和第四章的第一节。这些章节内容是理解mfc机制的核心内容!这些内容搞定后,后面内容的掌握就如水到渠成般自然流畅了。另外,从14章网络编程到16章的内容也很重要,需要认真理解!说了优点也就不能避开缺点不谈,首先12章开始到结束出现了很多错误。有些错误是印刷所致,还有些错误是翻译不准确所致!这些希望大家阅读时要小心!接着是第13章的内容编排稍有不妥,理解起来略有困难!且许多术语均是硬译而来,十分生硬晦涩。遇到这些内容大家可以参考msdn!最后,本书对数据库编程的知识涉及极少,让人有点不痛快!毕竟花了这么多money,到最后好像连个信息系统都没法完成!还好,书费学校给报销!呵呵!总之,这本书极具价值,想学好mfc的朋友应该看2遍以上。最后,分享一下我的导师告诉我的读书两法,一曰坚持,一曰重复!
  •   配合视频教程与书一起看,对于vc++入门与提高非常很有帮助,特别是对于自学vc++的人,这本书绝对是首选!不过,学习编程光看书是不够的,还要多动手,多与高手交流,多看高手的源代码。
  •   VC++深入详解(修订版)(含DVD光盘1张),这是一本非常好的书,学习中。。。
  •   正像书后所说,本书适合有一定VC++开发经验,想要系统地学习VC++的读者! 这本书的内容介绍的很全面了,几乎涉及到了Windows的方方面面,很好!
  •   这本书是VC++学习的必备书籍,加上配套的视频,真是一本值得购买的书!
  •   自从前一段时间,开始学习VC++以来,一直想要寻找一本合适的书籍,能够一步一步的带自己走进VC++的殿堂,但是在图书馆借来了好几本书,看完以后给自己的感觉都是懵懵懂懂的,直到碰见她(vc++深入详解),里面作者用通俗易懂的语句,帮助我解决了好几个问题,于是就毫不犹豫的要求自己买一本他!
  •   这是一本讲解VC比较经典的书籍,其中对MFC的使用做了比较好的讲解,对于初学者快速入门很有帮助!
  •   非常经典的入门书籍,方方面面很多都讲到了,看完之后感觉算是对MFC入门了。 可惜就是用VC6讲的,并且很多东西可能都不是很新了。但是对我这样的初学者来说,已经够用了。
  •   书中的讲解对我学习V C ++很有帮助,讲解的很细致明了,使很多抽象的定义概念容易理解领会,边看书边配合孙鑫老师的教学视频,让我对c++有了进一步的深入了解,也让刚接触C++不久的我受益匪浅,正如书籍介绍所说的畅销多年,经典再现!
  •   面型应用型书籍,适合初步掌握VC知识的人群阅读,对各种类型应用方面都有较为细致的讲解,很好很经典!
  •   个人感觉是同类书中介绍的比较全面的书籍,特别是从读者学习的角度,由浅入深的介绍,利于学习,同时也兼顾的深度。书中的很多小技巧感觉是来自于多年的编程实践的心得。感谢作者,感谢出版社,感谢当当。。。。
  •   估计我是第一个在当当买这本修订版的VC++深入详解的吧,买的时候都没有图片,,,这本书内容很棒不容置疑了,当当发货快,很快,快递不错!
  •   很好的一本书,师兄师姐都推荐的学习VC的好朋友!
  •   一本学习VC的不错的入门书籍
  •   学习vc++必不可少的书籍
  •   经典,学习vc的好书
  •   vc++学习的经典教材,得花点时间好好学了
  •   讲的比较入门,适合初学者学习,看完这本书之后对于VC就有了初步了解
  •   学习VC++不错的指导书,推荐之。。。
  •   如果你想学习VC不错的选择。
  •   很详细的一本书,对深入学习C++及windows编程很有帮助。快递很给力,很快!
  •   VC++深入详解
  •   买来送人的。非常经典的一本VC++书籍,很多人推荐。
  •   我最喜欢的一本VC++,作者大名久矣,书编写的非常好
  •   孙鑫的书算是经典中的经典吧 只是VC6有点老了
  •   这本书很经典,看完之后对vc++了解更深,赞一个。
  •   学vc++很经典的一本书,
  •   书是正版,印刷还可以,快递也给力,书正在研究中,可以作为VC开发的工具书使用
  •   很经典,适合VC++入门。
  •   经典vc,不错
  •   经典不用多说,VC++入门首选
  •   vc++程序员入门必备!!!
  •   想了解下 VC++方面的东西,得好好读读了!
  •   来龙去脉,一目了然,不错!很适合刚接触VC++的人
  •   vc入门必读
  •   一直想买,碍于太贵,VC入门
  •   入门的书籍,是学习MFC的必备,还有视频讲解
  •   根据视频,认真阅读,希望自己的编程水平,借助这本书有提高...
  •   讲MFC的一本书,相当的细致,需要一点C++的基础,视频很详细
  •   很给力的一本书,学习MFC必备。
  •   mfc学习必备的一本书,支持了
  •   我是先看了视频才买的书,入门MFC不错
  •   是学习MFC入门的非常好的教材
  •   我一般是懒得写评价的。不过这本书看了一段时间后感到必须来写点啥了。第一,写的很详细。第二,写得很有条理,循序渐进,很易懂,解释了好多虽琐碎却让我莫名其妙了好久的问题,比之前买的两本关于C++、mfc的书好多了。
  •   很好的一本讲解MFC的工具书,配合视屏更容易学
  •   孙鑫老师的视频以前就学习过,这次买这本书是想更系统的再学习一次、、、好书,值得反复琢磨
  •   前几个月看了孙鑫老师对应这本书的视频,感觉很好,修订版的书出来了,我就直接在当当上买了,送货速度快,书装订质量也很好,很满意!
  •   光盘挺好用的!对学习挺有帮助!
  •   书籍里看不懂的部分,看视频后再看相关部分的知识,理解比较好一点。
  •   这本书对MFC讲的很详细
  •   这本书,想来是极好的。特别是作者能用平实的语言解释一些难懂的关系。值得好好学习。
  •   感觉很好,配合视频看吧,一步一步来,我想通过这本书尽快入门!
  •   还没看,正版,如果读完在mfc上应该基础很扎实了,目录写的还算详实
  •   这本书的配套视频已经看过,此次购买只为珍藏!的确经典!
  •   书很好,质量很好,内容由浅入深,讲解详细。适合有C语言基础的读者使用。
  •   经典书籍,正在学习中......
  •   VC++学习的一本好书,只不过我买的时候光盘破损了***
  •   孙老师的这本书写得很独到,配合视频看,挺不错的。
  •   书很好,不用多说,以前都是看视频,天气热了,买本书,远离电脑
  •   大师巨著,结合配套视频教程可以让你尽情畅游在知识的海洋中~
  •   畅销好多年了吧。。很有参考学习价值
  •   看过孙鑫的视频 再买本书来巩固一下 书里知识挺全面 总体还是很不错的 喜欢
  •   好多人买深入详解第一版而不买这个修订版多数是因为没有缩略图吧?我想说这个修订版真的比第一版好了不少,内容更新了很多
  •   讲解很详细,视频也很好,看完可以直接接触相关项目的一本书。
  •   这本书是我同学推荐的 我在学习 很深入细致
  •   对于学习很有帮助,值得品读的的经典教材!
  •   在网上看的视频,之后买的书,很经典!
  •   书+视频+实例 经典之作
  •   收到书了,包装挺好,书挺值得。光片里的东西也拷贝下来了,很清楚,以后好好学习。希望自己有所进步!
  •   书刚刚拿到手,稍微看了下,觉得还不错,就是价格好贵啊,真心疼!好好学习啦!
  •   书很厚实,活动购进,很有用,值得学习,正在细度,希望对工作有所帮助
  •   很好,不过难度蛮大的,学习中
  •   印刷质量很好,视频不很清晰,伤眼睛
  •   这本书和孙鑫视频是一样的,完全没啥变动,不值得购买~
  •   这是以为朋友推荐的,C++学习入门经典教程!
  •   内容很好,适合有一定基础的人学习。
  •   一看就是正版的纸质,我希望系统的将C++再学习一遍,希望这本书能帮到我。
  •   很厚的一本书。。感觉要学习很久
  •   想学习C++大家都推荐这本书
  •   书很不错,视频给力
  •   虽然有相应的视频,不过个人更倾向于看书。
  •   非常好的书,视频没做好。
  •   先看的视频才知道有书。买来方便查代码。
  •   边听视频边看书,效果挺好的!!1
  •   这本书很久之前就想买了,但价位较高,刚好碰**当打折,价格很给力!就入手了,是正品!很喜欢!
  •   书刚拿到手,质量看着不错,希望可以好好的学习它。
  •   书附送的光盘不错,讲解很细致,书很好
  •   书很好,光盘很好!
  •   视频播放有点麻烦
  •   师兄推荐的&;hellip;正在学习&;hellip;应该不错的!
  •   不错 学习很有用
  •   买来学习数据库的,学习需要。其实我是帮同学买的。同学说还不错。值得看
  •   很适合自己学习
  •   还没有开始学习,不过很多人推荐,相信是本好书!
  •   我要学习C++,要想学好,就要有投入,投入金钱了,就能更多地投入精力去学习
  •   印刷什么的很不错,另外也适合学习
  •   本书很大很重还有一个带代码的光盘,讲的非常的细致。
  •   深入详解,刚买来,有时间再看下
  •   很经典的一本书,非常好
  •   首先书很新,质量很好,其次书中内容很详细讲得很好,大家都推荐这本书,于是就买了,很满意。。。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7