VISUAL C++6宝典

VISUAL C++6宝典
作 者: Richard Leinecker Tom Archer 张艳
出版社: 电子工业出版社
丛编项: 美国IDG“宝典”丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: VC
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《VISUAL C++6宝典》作者简介

内容简介

该书全面介绍了如何编写Windows应用程序,带领你从基本菜单和鼠标输入入手,一步步进入Internet程序设计和数据库连接等高级主题。书中每章讲授一个主题,同时向你展示如何使用书中所描述的技巧并提供演示程序。对于不熟悉VisualC++,或者甚至不熟悉Windows程序设计的读者,可以通过本书迅速学习基础内容,掌握Windows程序设计调的基本技巧。而对于那些程序员,经验丰富的编程高手,也会感到本书是本函盖全部基础知识、内容全面的VisualC++程序设计手册,书中详细剖析像Internet程序设计和数据库连接这些很有价值的主题。本书含有光盘,使其更加物有所值。你无需键入任何内容,即可使用书中展示的持巧。光盘中还包括了很多第三方演示程序和库。因此,你将有机会使用到适用于Windows程序开发的最好增件。本书结构清晰、内容全面、由浅及深、注重实用,突出了抽象概念和具体技术的实质,并根据实际需要提供了大量示图和程序示例,便于读者学习。读者对象:初、中级程序员、软件开发人员、网络管理员及广大计算机编程的业余爱好者。

图书目录

前言

第一部分:Visual C++基础

第一章 入门

Visual C++ 6.0中的新特性

Hello World1程序

Hello World2程序

Hello World3 ATL控件

小结

第二章 充分利用 Visual Studio IDE的优势

使用Visual Studio IDE

创建第一个项目

自定义IDE

查看当前快捷键

增加、编辑或删除快捷方式

使用工具栏

显示和隐藏工具栏

自定义工具栏

小结

第三章 应用程序的调试

调试程序应该具备的性能

Visual Studio集成式调试程序

准备进行调试的应用程序

在运行应用程序时使用调试程序

调试窗口

在调试时使用断点和单步执行操作

使用DataTips信息以及Quick Watch窗口

在调试过程中使用Threads和Exceptions对话框

简单调试技巧

使用消息框加速调试

调试输出

使用断言

对象倾倒

检测内存泄漏与CMemoryState类

使用MFC跟踪

远程调试

Just-In-Time调试

编辑并继续调试

调试Windows NT服务

小结

第四章 改善应用程序性能

优化代码

描述简介

了解有关应用程序描述的基本知识

了解Profiler的运行情况

描述类型

设置高级描述器设置

启用Visaul C++中的描述

从开发环境控制描述

选择需要描述的函数

了解PREP程序

函数定时描述

函数范围描述

行描述选项

行覆盖描述

合并描述器输出

从描述器中输出数据

分析描述器数据

了解全局信息记录

局部信息记录

分析描述器的统计数据

使用Microsoft Excel处理Profiler输出

描述动态链接库

描述ActiveX组件或ActiveX控件

描述内联代码

描述多线程应用程序

描述应用程序性能

使用CAP工具删除重复调用

描述Windows NT服务

小结

第五章 杂项工具

Spy++

自定义Tools菜单

杂项工具的动作

浏览类

浏览MFC源代码

小结

第二部分:Windows 编辑基础

第六章 MFC编程概述

什么是MFC

MFC的设计原理

MFC使用方面的优势

丰富的特性

可扩展体系结构

MFC层次设计

文件服务

窗口

图形

数据库支持

不使用MFC的原因

小结

第七章 菜单

创建和编辑菜单

创建菜单

MFC中的菜单消息

加速键

检查键盘输入

定义加速键

选择适当的加速键

多个加速键

动态更改菜单

菜单命令范围

在运行时更改菜单

永久及临时句柄映射

上下文菜单

小结

第八章 鼠标和键盘

输入基础以及系统状态

鼠标输入

创建鼠标消息处理程序

在屏幕坐标和窗口坐标之间转换

创建处理鼠标事件的MFC程序

非客户鼠标事件

更改鼠标光标

创建更改鼠标指针的MFC演示程序

捕获鼠标

限制鼠标移动

键盘输入

物理键盘

回显键盘焦点

小结

第九章 图形

介绍图形设备界面

图形类型

GDI设备类型

设备上下文

DC绘图属性

WM_PAINT消息

绘制坐标

触发WM_PAINT

响应除WM_PAINT之外的其他消息进行绘图

操纵文本

文本颜色

对齐文本

调整文本

关于字体

什么是字体

将对象选入DC

选择常备字体

画笔和画刷

画笔

画刷

映射模式

光栅操作

文本绘图函数

文本坐标的计算

剪取区域

小结

第十章 位图、调色板、DIM以及双缓冲

位图内存和视频内存

创建CBitmap对象

加勒和设置位图内容

将CBitmaps绘制到屏幕上

光栅操作

BlitDemo程序

调色板和颜色

逻辑调色板

调色板事件

SetSystempaletteUse( )函数

设备无关位图

DIB文件剖析

CDib类

ShowDIB定示程序

双缓冲

小结

第十一章 MFC异常处理

结构化异常处理

异常处理语法

抛出异常

捕获异常

错误处理技巧比较

处理错误代码

在正确上下文中处理错误

提高代码可读性

从构造函数中抛出异常

CException类

创建和删除CException对象

从CException对象中检索错误信息

捕获多种异常类型

定义CException派生类

研究CFileException类

CFileException演示程序

定义你自己的CException派生类

高级异常处理技术

确定应该捕获异常的函数

确定放置在try块中的代码

确定放置在catch块中的代码

从虚函数中抛出异常

小结

第十二章 控件

背景

创建控件

使用CButton类

使用CListBox类

使用Edit类

使用CStatic类

使用CScrollBar类

使用CComboBox类

Mini Editor程序

高级控件编程

添加一个键盘界面

修改控件的颜色

小结

第十三章 模式和非模式对话

使用对话编辑器

对话模板

创建新的对话模板

编辑一个对话模板

测试对话

CDialog类

模式与非模式对话的对比

用ClassWizard创建CDialog派生类

对话数据交换和校验

创建DDX变量

DoDataExchange和UpdateData

AddressBook演示程序

编辑演示程序的对话

CContact类

取代OnInitdialog

处理WM_DESTROY消息

显示数据

处理按钮通知

建立和测试试演示程序

在对话中派生控件类

创建控件类

AddressBook演示程序:CAutoCompleteComboBox

串行化

使每个类可串行化

实现Serialize( )虚函数

从磁盘中读取数据

把数据保存到磁盘

给AddressBook演示程序添加串行化

小结

第十四章 属性单和属性页

CjPropertySheet和CPropertyPage

创建属性页资源

创建CPropertyPage类

创建和显示的CPropertySheet

创建和显示非模式的CPropertySheet

在一个现有对话内创建和显示属性单

模式属性单演示程序

属性单和属性页提示和技巧

删除标准按钮

重定位标准按钮

重定位标准按钮

更改标准按钮的标题

禁用选项卡

重新启用属性页

动态设置CPropertyPage选项卡标题

更改选项卡的字体

使用CPropertyPage选项卡助记符

小结

第十五章 数据I/O

CString类

创建字符串

访问字符串数据

比较

抽取子串

搜索

StringDemo程序

CFile类

FileDemo程序

CCompressedFile类

CompressDemo程序

数据压缩

Huffman

LZSS

LZW

CCompressDemo内幕

用于串行通讯的CSerial类

串行通讯

CSerial类

CRegistry类

注册表值

预定义的注册表键

常用注册表键

CRegistry类的使用

使用剪贴板

小结

第十六章 声音

播放录制好的声音

CWave类简介

使用Windows API播放波形文件

CWave类函数

WAveDemo程序

播放MIDI文件

什么是MIDI

CMidi类简介

CMidi类函数

MIDIDemo程序

CD音频

CCDAudio类库简介

媒体控制接口

CCDAudio类函数

CDPlayer程序

小结

第十七章 计时器和OnIdle循环处理

计时器

用WM_TIMER设置计时器

用一个回调过程设置计时器

Clock程序

使用CWinApp的OnIdle能力

OnIdleDemo程序

小结

第三部分:体系结构

第十八章 内存管理

系统内存管理

Intel-86 32位分页寻址模式

Windows 98的单进程地址空间

系统内存清理

进程私有内存

分配页

编译器内存分配

Win32私有堆

共享内存

内存映射文件I/O

动态分配共享页

静态分配共享页

小结

第十九章 文档、视图和SDI

文档/视图设计

CDocuent类

在你的应用程序内声明一个文档类

CDocument的成员函数

理解文档和消息处理

取代虚文档函数

使用复杂文档数据

理解CCmdTarget和CDocItem的益处

InitInstance函数对文档的重要性

应用程序如何管理文档和视图

关注CSingleDoc Tempalte类

简介框架窗口

模板资源

字符串资源如何影响文档模板

分离字符串资源

看看常备视图资源

考虑文档模板生命周期

模板的高级用法

使用多个模板

销毁用AddDocTemplate()成员函数添加的文档

了解和使用CView类

声明一个视图类

分析CView成员函数

使用视图和消息

CView类的MFC派生变形

CForm视图与基于对话的应用程序的对比

返回框架窗口

理解AfxGetmainWnd()的角色

HexView SDI应用程序

小结

第二十章 MDI应用程序的布局

重谈文档/视图模型

回顾CDocument类

管理文档、视图和框架窗口的复杂组合

使用多文档类型

使用文档的多个视图

了解CMDIFrameWnd类

了解CMDIChildWnd类

了解CMultidocTemplate类

回顾使用CDocumetn 类的开销

进一步考虑MDI应用程序

PaintObj程序

理解拆分窗口

区分拆分窗口

理解特定于CSplitterWnd类的内容

详细讲解动态拆分

在动态面板中使用不同的视图

使用CRuntimeClass对象

对与多个文档关联的视图使用拆分器

使用静态拆分器

创建静态拆分器

了解共享流动条

确定实际的和理想的尺寸

了解拆分器的性能问题

Dynsplit 程序

为窗口定义子类

使用MFC定义窗口子类

文档/视图体系结构的替代

小结

第二十一章 打印和打印预览

Windows API打印机支持

打印机信息

理解字符特征的重要性

PortLand程序

用MFC进行打印

了解在打印中你的角色和框架的角色

了解MFC打印序列

进一步洞察MFC默认打印

打印协议

取代视图类函数和分页

了解CPrintInfo类

了解打印机的页和文档页的对比

实现分页

添加帮助函数

打印时分页

重谈页眉和页脚的打印

为打印分配GDI资源

扩大打印的图像

了解打印预览体系结构

打印预览过程

修改打印预览

增强应用程序的打印预览

了解CPrintDialog类

HexViewMDI程序

小结

第二十二章 用于高级Windows 用户界面的MFC

更多的控制权

理解模式循环

RunModalLoop()内部

模式循环参数

终止模式循环

生成模式应用程序

创建和关闭模式窗口

添加处理程序

简单的模式应用程序

进一步改进模式窗口

在透明客户构上绘制透明位图

绘制位图

确定在什么地方粘贴位图

兼容的设备上下文

BITMAP结构

把所有图片叠合在一起

确保已被注意到

小结

第二十三章 状态栏和工具栏

创建和使用状态栏

创建状态栏

自定义状态栏

创建和控制工具栏

MFC控件栏

创建和初始化一个工具栏

使用ReBar控件

小结

第二十四章 树视图和列表视图控件

CTreeCtrl

树视图控件基础知识

CTreeCtrl

CTreeCtrl演示程序

CListCtrl列表视图基础知识

CListCtrl

小结

第二十五章 线程

线程

创建工作者线程

线程函数

创建用户界面线程

挂起和继续执行线程

使线程睡眠

终止一个线程

从一个线程中终止另一个线程

线程、进程和优先级

进程优先级类

在线程之间共享MFC对象

在多线程应用程序中使用C运行函数

ThreadDemol程序

小结

第四部分:数据库编程

第二十六章 ODBC

ODBC定义与数据库术玉器

ODBC产生自对标准的需要

ODBC标准

ODBC API一致性层

ODBC SQL一致性层

ODBC的实现

配置ODBC

连接到一个数据源

查询数据和数据源

准备与执行SQL请求

检索数据

断开与数据源的连接

使用ODBC获取数据

为Visual C++项目添加对ODBC的支持

修改ODBCDemo对话

添加初始化和数据库代码

使用ODBC动态查询数据源

ODBCDynamic类声明

ODBCDynamic类如何工作

使用ODBCDynamic类

小结

第二十七章 MFC数据库类

CDatabase类

CRecordset类

构造一个记录集

打开一个记录集

使用RFX读写数据

过滤记录

排序返回的记录集中的记录

在结果集合中移动

保存记录

删除记录

使用MFC数据库类

添加对MFC数据库类的支持

为演示程序创建UI

添加工具类以封创建CRecordset类

修改对话的实现文件

参数化记录集与查询

为演示程序创建UI

创建UserMaster记录集

修改CRecordset类以接受参数

为应用程序添加查找功能

建立应用程序

创建参数化查询

演示数据库

创建权限记录集

小结

第二十八章 DAO数据库编程

DAO概览

DAO的历史

DAO层次结构

DAO的多种内部形式

使用MFC DAO类

CDaoDatabase类

CDaoWorkspace类

CDaoRecordset类

MFC DAO演示程序

小结

第五部分:扩展应用程序

第二十九章 使用DLL

DLL概述

动态库和静态库

加载DLL

Visual C++常规DLL

了解常规DLL内部

动态加载DLL

何时动态加载DLL的例子

Windwos 异常分支

使用DLL的全局C++对象

MFC扩展DLL

理解MFC扩展DLL的内部

通过MFC扩展DLL导出类

关于AFX_EXT_CLASS的更多内容

使用嵌套的MFC扩展DLL

民出资源

编写在DLL中封装文档和视图的演示程序

小结

第三十章 在程序中添加图形

第三方库

ImageObject库简介

BMP文件格式

GIF文件格式

JPEG文件格式

PCX文件格式

TGA文件格式

TIF文件格式

库加载图象

Dispaly程序

缩放、裁剪和改变颜色深度

从设备上下文中创建图像

从剪贴板创建图像

保存图像

图象处理

ProcessImage程序

小结

第六部分:组件对象模型编程

第三十一章 ActiveX和ActiveX控件设计介绍

理解ActiveX的起源和使用

理解各种ActiveX技术

理解自动化服务器

理解自动化控制器

定义ActiveX控件

理解组件对象模型对象

理解ActiveX文档

理解ActiveX容器

理解ActiveX能够为你做些什么

确定你需要哪种ActiveX组件

使用自动化服务器和控制器

使用ActiveX控件

使用COM对象

使用MFC来创建ActiveX组件

使用ActiveX模板库来创建ActiveX组件

使用BVaseControl框架来创建ActiveX组件

创建你自己的框架

基本的ActiveX组件体系结构

ActiveX自动化服务器

ActiveX控件

建立ActiveX组件需要的支持工具

MIDL编译器

Mktyplib

GUIDGEN

RegEdit

注册服务器

Ole2View

把工具添加到Visual C++开发环境中

用MFC创建一个基本ActiveX控件

创建基本的控件项目

控件注册

创建方法

属性

创建属性页

添加事件

持久性

绘制控件

标准绘制

小结

第三十二章 用MFC创建ActiveX自动化服务器

创建基本项目

给应用程序添加一个自动化接口

注册服务器

库范例服服务器编写支持代码

添加方法

给服务器添加属性

产生OLE异常

理解双接口服务器

产生双接口OLE异常

用C++进行器实例化

用C++实例化OLE服务器时常见的问题

创建可共享的服务器

单一实例服务器

小结

第三十三章 活动模板库

ATL概述

创建ATL控件

把一个COM对象添加到项目中

修改CDoublePend包含文件

实现接口函数

在C++中使用控件

数据类型

转换BSTR

比较BSTR

在调试器中查看一个BSTR的内容

在Web页中嵌入ActiveX控件

小结

第七部分:因特网和HTML编程

第三十四章 因特网编程

CInternetSession类

CFtpConnecton类

从FTP服务器中检索文件

把文件发送给FTP服务器

其他FTP函灵敏

CInternetFile类

CFtpfileFind类

FTP程序

套接字和CSocket类

创建套接字

连接到套接字

监听一个连接

读数据和写数据

Sockets程序

SendEmail程序

检索HTTP文件

AutoDialer程序

小结

第三十五章 CHtmlView类

创建一个CHtmlView项目

把项目转换为使用CHtmlView

导航CHtmlView

SimpleBrowser程序

MultiBrowser程序

直接使用Web浏览器控件

编写一个记录导航日志的浏览器

编写一个阻挡站点的浏览器

小结

第三十六章 动态HTML

HTML基础

层叠式风格单

全局风格单

风格单语法

简单的文件查看器

事件和对象模型

脚本

脚本元素

改变非文本元素

在文档加载时运行脚本

脚本对话

小结

第八部分:Visual Studio的高级用法

第三十七章 Visual Studio脚本编制

Visual Studio宏

Quick Macro

创建VBScript宏

理解VBScript宏

编辑VBScript宏

创建一个空宏

使用VBScript宏

加载宏文件

运行VBScript宏

把宏分配组工具栏

把宏分配给按键

理解VBScript

VBScript编程

使用变量

使用常量

使用函数和过程

使用Developer Studio对象模型

访问该对象模型

使用Application对象

使用范例应用程序

运行范例宏

理解范例宏

小结

第三十八章 编写自定义AppWizard

AppWizard的内部工作

AppWizard管理器

CCustormappWiz类和Dictionary

创建一个自定义AppWizard

预置项目的默认设置的演示项目

定义CCustomAppWiz类

使用宏字典

一个更高级的自定义AppWizard

添加一个定义对话

创建你自己的模板

更改newproj.inf文件

更改ClassWizard文件

更改AppWizard模板

更改CONFIRM.INF文件

为永久性的宏使用注册表

更改CAboutWizAppWiz类以使用注册表

小结

附录 光盘内容