Visual C++5.0开发技术内幕

Visual C++5.0开发技术内幕
作 者: Richard Leinecker 陈冠民
出版社: 机械工业出版社
丛编项: 计算机软件开发与程序设计系列丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: VC++
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Visual C++5.0开发技术内幕》作者简介

内容简介

本书适合于Visual C++ 5程序开发人员,阅读本书首先需要熟悉Visual C++ 5。本书条理清晰,语言简练,涵盖了图像、多媒体、通信、数据压缩等各个方面。对每方面的应用都介绍了一些基础知识,并且提供了大量的练习,以指导读者使用功能强大的类库。书中提供的类库是对MFC的补充,类库接口设计得非常简单,这使读者可以在最短时间内掌握使用它们的方法,迅速地将自己的应用程序提高到专业级的水平。

图书目录

目 录

译者序

前言

第1章 图像

1.1IMAGEOBJECT 类库

1.1.1图像文件格式

1.1.2IMAGEVIEW演示

1.2CIMAGEOBJECT类库函数调用

1.3IMAGEVIEW剖析

1.3.1打开文件

1.3.2保存文件

1.3.3绘制图像

1.4载入和显示图像概括

1.5创建使用图像的程序

1.5.1练习一:载入并显示一幅图像

1.5.2 练习二:载入四幅图像

1.5.3练习三:在多个视图窗口中载入图像

1.5.4练习四:倒置和翻转图像

1.5.5练习五:剪裁和重置图像大小

1.6在WEB 上

1.6.1Softelvdm

1.6.2LeadToolsPro6.0for

Windows

1.6.3AccuSoft

1.7共享软件和商业演示

1.7.1ImageGear

1.7.2LeadTools演示

1.8继续前进

第2章 屏幕效果

2.1SCREENEFFECTS类库

2.2CSCREENEFFECTS类库函数

调用

2.3SCREENEFFECTSDEMO剖析

2.3.1绘制图像

2.3.2暂停效果

2.3.3启动屏幕效果

2.3.4启动背景效果

2.3.5停止效果

2.3.6改变图像

2.3.7定时器

2.4屏幕效果概括

2.5创建使用屏幕效果的程序

2.5.1练习一:一个简单的屏幕效果

2.5.2练习二:在效果中使用颜色

2.5.3练习三:使用一幅图像和一种颜色

2.5.4练习四:多重屏幕效果

2.5.5练习五:交互式屏幕效果

2.6在WEB上

2.7继续前进

第3章 图像点处理

3.1IMAGEPOINTPROCESSES类库

3.2CIMAGEPOINTPROCESSES类库

函数调用

3.3IMAGEPOINTPROCESSES(IMA-

GEVIEW)剖析

3.3.1改变亮度

3.3.2着色

3.3.3转换成为灰度图像

3.3.4反转颜色

3.4图像点处理概括

3.4.1CHANGEBRIGHTNESS()

3.4.2COLORIZE()

3.4.3MAKEGRAY()

3.4.4REVERSECOLORS()

3.5创建处理图像的程序

3.5.1练习一:改变图像的亮度

3.5.2 练习二:同时变亮和变暗

3.5.3练习三:颜色反转

3.5.4练习四:给图像着色

3.5.5练习五:转换为灰度图像

3.6在WEB 上

3.7共享软件

3.8继续前进

第4章 图像区域处理

4.1CIMA GEAREAP ROCESSES类库

4.2 CIMAGEAREAPROCESSES类库

函数调用

4.3AREAPOINTPROCESSDEMO

(IMAGEVIEW)剖析

4.3.1改变对比度

4.3.2轮廓强化

4.3.3均衡调节对比度

4.3.4高通滤波

4.3.5低通滤波

4.3.6中值滤波

4.4区域图像处理概括

4.4.1CHANGECONTRAST()

4.4.2EQUALIZECONTRAST()

4.4.3MEDIANFIILTER()

4.4.4LOWPASSFILTER()

4.4.5HIGHPASSFILTER()

4.4.6EDGEENHANCE()

4.5创建使用区域图像处理的程序

4.5.1练习一:对图像进行中值滤波

4.5.2练习二:对图像进行高通滤波

4.5.3练习三:对图像进行低通滤波

4.5.4练习四:均衡调节图像的对

比度

4.5.5练习五:强化图像的轮廓

4.6在WEB 上

4.7 共享软件

4.8继续前进

第5章 闪屏效果

5.1CSPLASHSCREEN类库

5.2SPLASHDEMO

5.3CSPLASHSCREEN类库函数调用

5.4SPLASHDEMO剖析

5.4.1SPLASHDEMO.CPP

5.4.2SPLASHDEMO.H

5.5显示闪屏效果的简要说明

5.6 创建使用闪屏效果的程序

5.6.1练习一:创建一个有简单闪屏

效果的应用程序

5.6.2练习二:创建一个有多幅图片

闪屏效果的应用程序

5.6.3练习三:创建一个使用图像处

理技术的应用程序,使闪屏图

像模糊

5.7 在WEB 上

5.7.1NordenssonLynnAdvertising

5.7.2InstallShield

5.7.3LorrexInc

5.8继续前进

第6章 获取TWAIN数据

6.1TWAIN——它到底是什么

6.2TWAIN的组成

6.3使用TWAIN的优点

6.3.1应用程序开发商的受益

6.3.2图像源开发商的受益

6.3.3最终用户的受益

6.4如何获得支持

6.4.1如何获得关于TWAIN的资料

6.4.2如何订购工具包

6.5TWAIN类库

6.6TWAINDEMO

6.7CSCANNER类库函数调用

6.8TWAINDEMO剖析

6.8.1CMAINFRAME类

6.8.2允许用户选择操作

6.8.3创建一个新文档

6.8.4保存文件

6.8.5视图类的构造函数

6.8.6视图类的析构函数

6.8.7绘制所获取的图像

6.8.8在获取焦点时设置调色板

6.8.9保存图像

6.9获取TWAIN图像概括

6.10 创建获取TWAIN数据的程序

6.10.1练习一:获取图像并保存到

磁盘文件上

6.10.2练习二:显示所获取的图像

610.3练习三:获取多幅图像

6.11在WEB上

6.11.1TWAIN开发人员文件

6.11.2TWAIN教程

6.12 共享软件和商业演示

6.13 继续前进

第7章 区域图

7.1RGNMAPLIB类库

7.1.1NCSA 数据文件格式

7.1.2注释文件格式

7.1.3MAKEMAP 程序

7.2REGIONMAP演示

7.3RGNMAPLIB类库函数调用

7.4REGIONMAP剖析

7.4.1创建和载入对象

7.4.2删除对象

7.4.3绘制区域

7.4.4检测鼠标位置

7.4.5鼠标键单击

7.4.6与CRGNMAP类进行交互

7.4.7放大区域图

7.4.8载入图像

7.5总结如何载入和显示区域图

7.6创建使用区域位图的程序

7.6.1练习一:使用非洲地图

7.6.2练习二:创建蝗虫区域图

7.7共享软件和商业演示

7.8继续前进

第8章 动画

8.1ANIMATION类库

8.2CANIMATION类库函数调用

8.3动画类中使用的BLIT操作

8.3.1替换BLIT说明

8.3.2XORBLIT说明

8.3.3子图形BLIT说明

8.4ANIMATIONDEMO剖析

8.4.1启动定时器

8.4.2实现定时器代码

8.4.3创建动画

8.4.4重绘动画

8.4.5保持动画

8.4.6设置焦点

8.5总结如何使用动画

8.6创建使用动画的程序

8.6.1练习一:创建静态动画

8.6.2 练习二:创建一个四帧静态

动画

8.6.3练习三:创建XOR动画

8.6.4练习四:创建子图形动画

8.7在WEB 上

8.7.13D动画

8.7.2有关动画的图书

8.8共享软件和商业演示

8.9继续前进

第9章 视频

9.1WINDOWS视频

9.2VIDEO类库

9.3VIDEOPLAYER演示

9.4播放AVI文件

9.4.1CANIMATECTRL

9.4.2媒体控制接口(MCI)

9.5CVIDEO类库函数调用

9.6VIDEOPLAYER 剖析

9.6.1打开文件

9.6.2成员函数

9.6.3播放选项

9.7创建使用视频的程序

9.7.1练习一:播放一个AVI文件

9.7.2练习二:“ABOUT”对话框中的视频

9.8在WEB上

9.8.1CineWeb

9.8.2Lenel

9.8.3Metagraphics

9.8.4Hyperionics

9.8.5视频和动画工具

9.9共享软件和商业演示

9.9.1AVIConstructor

9.9.2AviLxp

9.9.3WinHelp

9.10 继续前进

第10章 在应用程序中使用类库

10.1打印图像

10.1.1练习一:在打印机上打印简

单文本

10.1.2练习二:载入 显示和打印

图像

10.1.3练习三:放大图像

10.1.4练习四:使放大的图像居中

10.1.5练习五:载入 显示和打印

多幅图像

10.2将图像作为应用程序的背景

10.2.1练习六:使用图像作为视图

窗口的背景

10.2.2练习七:将图像平铺为窗口

背景

10.3从剪贴板中获得图像

10.4在WEB 上

10.4.1VTImageBase

10.4.2Primate图片库

10.4.3Garbo 航空图片库

10.5继续前进

第11章 MIDI

11.1MIDI是什么

11.2MIDI类库

11.2.1MIDIPLAYER演示

11.2.2答疑

11.3用媒体控制接口播放MIDI文件

11.4CMIDI类库函数调用

11.5MIDIPLAYER剖析

11.5.1MIDI基础

11.5.2改变位置和播放速度

11.6创建使用MIDI的程序

11.6.1练习一:在背景中播放

MIDI音乐

11.6.2练习二:高级MIDI播放

11.7在WEB 上

11.7.1Cakewalk

11.7.2VoyetraTechnologies

11.7.3MabrySoftware

11.7.4MidiWeb

11.7.5Crescendo

11.7.6WEB上的文件

11.8共享软件和商业演示

11.8.1WindChimes

11.8.2MIDIART

11.8.3MIDITool

11.8.4PCALL

11.9继续前进

第12章 声音

12.1WAVE类库

12.2WAVESTUDIO演示

12.3CWAVE类库函数调用

12.4播放WAV文件

12.4.1PLAYSO〕UND()函数

12.4.2媒体控制接口

12.5DIRECTWAVE类库

12.6CDIRECTWAVE类库函数调用

12.7WAVESTUDIO剖析

12.7.1载入声音

12.7.2播放、停止和关闭

12.7.3录音和保存

12.8创建使用声音的程序

12.8.1练习一:播放声音文件

12.8.2练习二:录音并保存

12.8.3练习三:使用DIRECT-

SOUND

12.9在WEB上

12.9.1Yahoo!

12.9.2 PlayNow

12.9.3DiamondWare,Ltd

12.9.4CoolEdit

12.9.5RSX3D

12.10 共享软件和商业演示

12.10.1AWsve

12.10.2 Speak

12.10.3Quack

12.11 继续前进

第13 章 CD音频

13.1CDAUDIO类库

13.2CDAUDIOPLAYER演示

13.3CCDAUDIO类库函数调用

13.4CDAUDIOPLAYER剖析

13.4.1CD音频基础

13.4.2改变位置

13.4.3CD信,息

13.5创建使用CD音频的程序

13.5.1练习一:作为背景音乐而播放CD音频

13.5.2 练习二:获取CD音频信息

13.5.3练习三:高级CD音频

13.6在WEB上

13.6.1VoyagerCDLink

13.6.2TegoSof

13.6.3CDRunner

13.7共享软件和商业演示

13.7.1ProAudioCDPlayer

13.7.2 MultiMediaMixer

13.7.3CDWorx

13.8继续前进

第14章 调制解调器 网络和因特网通信

14.1CMESSAGE类库简介

14.2通信类型

14.2.1串行通信

14.2.2网络通信

14.2.3因特网通信(WINSOCK)

14.3CHECKERS演示

14.4CMESSAGE类库函数调用

14.4.1通过OMESSAGE调用CTALK函数

14.4.2在CMESSAGE、CTALK、

CNETWORK和CINTERNET

类中的专网通信设备项

14.4.3因特网通信设备专用项

14.5CHECKERS剖析

14.5.1初始化变量

14.5.2程序终止前的清理工作

14.5.3画出棋盘和棋子

14.5.4检查鼠标是否选中方格

14.5.5设置运动定时器

14.5.6定时器代码中的内部事物处

理命令

14.5.7检查游戏是否结束

14.5.8鼠标左键

14.5.9鼠标右键

14.5.10向远端机拨号

14.5.11挂断

14.5.12发送文本消息

14.5.13 等待命令

14.5.14 开始新游戏

14.5.15退出游戏

14.6将CHECKERS演示程序改为可

在网络通信中使用的程序

14.6.1从列表中选择用户

14.6.2初始化网络DLL和解除初

始化

14.6.3从“USERLIST”文件中获

取结点和地址

14.6.4向远端机拨号

14.6.5等待命令

14.7将CHECKERS演示程序改为可

在因特网通信中使用的程序

14.7.1确认IP地址

14.7.2初始化网络DLL和解除初

始化

14.7.3向远端机拨号

14.7.4等待命令

14.8总结如何使用CMESSAGE类

14.8.1创建和启动定时器

14.8.2应答

14.8.3拨号

14.9创建和CMESSAGE库通信的

程序

14.9.1练习一:使用调制解调器

连接两台计算机

14.9.2练习二:使用NOVELL兼

容网络连接两台计算机

14.9.3练习三:通过因特网连接

计算机

14.9.4练习四:发送简单消息

14.9.5练习五:从远端机上读取

消息

14.10在WEB 上

14.11继续前进

第15章 数据压缩

15.1COMPRESSEDFILE类库

15.1.1数据压缩演示

15.1.2不同的数据压缩类型

15.2CCOMPRESSEDFILE类库函数

调用

15.3COMPRESSDEMO剖析

15.3.1打开文件

15.3.2保存文件

15.4压缩以及解压缩数据概括

15.4.1读文件

15.4.2写文件

15.5创建使用数据压缩技术的程序

15.5.1练习一:压缩文件

15.5.2练习二:解压缩文件

15.5.3练习三:将多个文件压缩

为一个存档文件

15.5.4练习四:解压缩档案文件

15.6在WEB上

15.7结论

附录A 关于所附光盘

1.1.1图像文件格式

ImageObject类库支持六种图像文件格式,BMP、GIF、JPG、PCX、TGA和TIF,它们

都有各自的优点和不足。出于这个原因 应斟酌一下该为自己的应用程序选择哪一种格式

以下是每种文件格式的简单介绍

1.1.1.1BMP

MicrosoftWindowsBitmap(BMP)文件格式是MicrosoftWindows操作环境所支持的几

种图像文件格式之一。BMP是Windows的原始位图格式,用来保存任意类型的位图数据

MicrosoftWindows下运行的绝大多数图形图像软件均支持创建和显示BMP文件

BMP文件支持所有的屏幕分辨率和Windows所支持的颜色组合 正因为如此 总是可

以创建出刚好符合屏幕设置的BMP文件。

BMP文件几乎没有经过任何压缩。这使它显得很大 捕捉一幅分辨率为800×600,颜

色为24位色的屏幕图像会得到一个2743545字节的大文件 由此可见,当考虑到磁盘空间

时,这种文件格式不是一个很好的选择

1.1.1.2GIF

GIF是图形交换格式(GraphicsInterchangeFormat) 的缩写,它的主要特点是通过使用

LZW压缩而得到很好的压缩效果 把同样800×600分辨率24位色的BMP图像转化为8

位色后将只有20KB字节大小。

在追求高色彩的今天,使用GIF的一个缺点是它的8位颜色数的限制。对大多数应用程序

来说这也是足够的 但对于需要具有照片质量图像的应用程序而言 这显然是远远不够的

1.1.1.3JPG

JPG(JPEG)是一种日渐流行的新文件格式。它的主要特点是高压缩率,甚至比GIF

格式的还要好许多。当然,它是以牺牲图像的完整性为代价来获取这种高压缩率的。

很多时候,损失一小部分图像质量并不会被注意到 这种情况下,JPG因为它神奇的压

缩效果将是一种不错的选择 同样800×600分辨率24位色的BMP文件 转化后只有

5KB大小。

JPEG常被用作照片图像,这是因为照片图像的少量失真很难被发现此时 在文件大

小和图像质量的损失两者之间 获取更小文件容量的因素占了上风

1.1.1.4PCX

许多年前,Zsoft为了给自己的绘图软件PCPaint提供一种具有一定压缩能力的图像文

件格式而开发了PCX。它的压缩能力比未压缩的文件要好一些,但是它使用的编码机制使

得产生的图像文件还是比较庞大。

PCX文件的问题之一是8位色的限制 再加上压缩能力不佳的事实 它将很快地退出

PC舞台。

1.1.1.5TGA

TGA(Targa)文件是为了支持捕捉视频图像的硬件设备而开发的。Targa文件格式使

它可以很容易地将许多视频信息压缩到磁盘上,因为只需对很少的数据进行处理

Targa提供了压缩方案 但一般来说图像是以未压缩的格式保存的 某些场合下Targa

文件具有很大的优势是因为它支持从单色到多至32位色的图像

1.1.1.6TIF

TIF全称是标记图像文件格式(taggedimagefileformat),它被设计成为一种可适用于

任何场合的文件格式。因此,这种文件格式很难进行维护。许多软件供应商或第三方团体对

此文件格式进行了修改,加入了自己的标记,使得别人很难跟上此文件格式的变化。

TIF文件仍应用于许多桌面出版软件中,因为它能处理许多光度值,这些值对于处理图

像而言是必不可少的。它也提供了几种压缩方案,但更多情况下TIF是未压缩的。

大多数TIF文件是未压缩存储的。没有经过压缩的文件载入和保存的速度要比压缩过

的快。如果想进行图像处理,笔者建议考虑先以TIF格式进行 直到完成了所有的图像处

理之后再将它以一种压缩的格式保存