资源描述
第3章 图形与文本设计
案例3.1 编写一个调色板
程序说明:
本例介绍如何在VB中编写调色板程序。看演示
设计方法:
本例是个较为实用的小程序,但从编写角度来讲是很简单的。使用滚动条作为颜色值的输入方式是最好的选择,试想一下,如果采用文本框来输入颜色值将会有多么麻烦。此外,颜色的显示是借助图片框的背景色来实现的。查看源文件
案例3.2 五彩缤纷的清屏效果
程序说明:
在一些软件演示中,屏幕内容间的切换往往以一些有趣的清屏图案来相互切换。有的像演出舞台上的开幕、闭幕方式,有的像百叶窗效果,也有一些圆形、菱形等形态各异的清屏效果。本例将介绍在VB中如何实现这些清屏效果。看演示
设计方法:
窗体的Cls方法是VB提供的清屏方法,但使用该方法来清屏不能实现我们希望的动态效果。实际上,所谓清屏就是用一种颜色将屏幕上原来的内容覆盖掉。那么,就可以使用图形方法(Line、Circle等)在窗体上绘制线条来清屏。通过控制线条的绘制过程,就可以实现五彩缤纷的清屏效果。例如,从窗体的两边开始画直线,使它们同时向中间靠拢,即可产生闭幕的清屏效果。查看源文件
案例3.3 滚动显示图片
程序说明:
在默认情况下,图片框控件的大小不随其中加载图片的大小而变化,而且图片框控件也不提供滚动条。因此,如果加载的图片比图片框控件大,则超出的部分显示不出来(除.wmf格式的文件外,该格式的文件会自动调整大小以填满图片框)。如果将图片框控件的 AutoSize属性设置为True,则它将自动调整大小以适应加载的图形。但这样会使用户界面很不合理,因此本例提供了一种滚动显示图片的方法。本例将介绍如何通过垂直滚动条与水平滚动条实现图片在图片框中的滚动。看演示
设计方法:
本例的设计思想是:在应用程序中使用两个图片框,第一个称为父图片框控件,第二个称为子图片框控件。将子图片框放置在父图片框中,再将要显示的图片放在子图片框中。利用垂直滚动条控件和水平滚动条控件来控制子图片框在父图片框中的位置,这样,看上去就像是图片在图片框中滚动了。查看源文件
案例3.4 绘制柱状图表
程序说明:
本例如何在VB中根据给定的数据绘制出相应的柱状图表。看演示
设计方法:
一个完整的图表包括坐标系统(坐标轴以及刻度)、图线和图例。坐标系统可以使用Line方法绘制出。对于柱状图表,由于它是用矩形的高度来表示数据,因此,也可以使用Line方法来绘制。查看源文件
案例3.5 实现“百叶窗”的图形特效
程序说明:
本例将介绍如何在VB中实现图像的“百叶窗”切换效果。看演示
设计方法:
在窗体中放置两个图片框控件,并且在第一个图片框中放置一个图片。然后调用BitBlt函数将第一个图片框中的图像一部分一部分地复制到第二个图片框中,这样就可以实现各种奇特的图像特效。查看源文件
案例3.6 图片切换特效
程序说明:
本例介绍几种常见的图片切换效果的编程方法。其中包括直接切换效果、百叶窗效果、进入效果和马赛克效果。看演示
设计方法:
使用图片框的PaintPicture方法可以实现图片的各种切换效果。查看源文件
案例3.7 实现屏幕变暗的效果
程序说明:
当我们关闭Windows时,Windows总会先把整个屏幕变暗,若取消关机,屏幕又会恢复原状。本例就来介绍如何使用VB编写将屏幕变暗及恢复的程序。看演示
设计方法:
幕变暗实际上就是将屏幕原来图像与花色进行与运算以后的结果。因此,首先要使用API函数CreateBitmap(创建位图对象)和CreatePatternBrush(创建花色对象)来建立花色对象,然后再使用BitBlt函数使屏幕图像与花色进行与运算,这样就可以产生变暗的效果。要恢复屏幕的正常显示,需要使用API函数InvalidateRect。查看源文件
案例3.8 旋转位图
程序说明:
本例介绍如何在VB中实现位图的旋转。看演示
设计方法:
在VB中没有提供能实现位图旋转的命令或函数。本例的设计思想是:将左边图片框中位图的像素点旋转一个角度后画入右边的图片框,当源图片框中的像素全部被画到目 标图片框中时,也就完成了整个位图的旋转。查看源文件
案例3.9 缩放位图
程序说明:
本例介绍如何使用VB编写缩放位图的程序。看演示
设计方法:
PaintPicture方法是窗体或图片框的一个很实用的方法,它能够将窗体或图片框中的一个矩形区域内的像素复制到另一个对象上。并且可以对复制的图形进行缩放、翻转等操作。查看源文件
案例3.10 显示背景透明的图片
程序说明:
本例将介绍如何编写一个实现将一个位图透明放置到另一副图片上的程序。看演示
设计方法:
在开始编写程序之前,要对准备透明放置的图片进行一些处理。将图片中要透明的地方设置为黑色。本例主要使用API函数BitBlt来实现位图的透明放置效果,基本设计步骤如下:
(1)首先在窗体上放置3个图片框,名称分别为Picture1、Picture2和Picture3。其中Picture1中放置准备透明放置的图片;Picture2图片框用来放置该图片的黑白蒙板;Picture3图片框用来放置另一副图片。
(2)将Picture1图片框中的图片拷贝到Picture2上,然后在Picture2上进行工作。即在Picture2上逐行逐点扫描位图信息,凡是非黑色象素点将其置成白色,这样在Picture2上就会产生图片的一个黑白蒙板。
(3)再将Picture1和Picture2作反相运算产生的图像存于Picture1中。
(4)然后用或运算将Picture2图像贴在Picture3中的图片上。
(5)最后用异或运算将Picture1图像贴再Picture3中的图片上即可。查看源文件
案例3.11 演示3D旋转效果
程序说明:
本例介绍如何实现图形的3D旋转效果。看演示
设计方法:
本例旋转的图形由九个点和点之间的连线构成,其中有一个点在旋转中不动,我们称这个点为基点。因此,本例的关键实际上就是显示出其他八个点相对于基点的位置关系。查看源文件
案例3.12 滚动字幕
程序说明:
本例介绍如何在VB中制作滚动字幕的效果。看演示
设计方法:
首先在窗体上放置一个图片框控件,再在该图片框中放置一个标签控件,然后使用定时器控件来控制标签在图片框中的移动,就可以模拟出滚动字幕的效果。查看源文件
案例3.13 实现打字效果
程序说明:
在电影的片头或片尾,常常能见到文字一个一个地自动显示出来,就像后台有人在现场打字一样。本例将介绍如何在VB中实现这种效果。看演示
设计方法:
实现打字效果需要使用SendKeys函数,它的作用是将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。查看源文件
案例3.14 在VB中使用Word的“艺术字”
程序说明:
本例介绍如何在VB应用程序中调用Word的“艺术字”工具来产生艺术字。看演示
设计方法:
Word 97本身就是一个庞大的代码部件,也就是说,Word 97中的对象能被其他应用程序所调用。而“艺术字”正是Word 97中的一种对象,因此可以方便地在VB中调用它。
要使用“艺术字”对象,首先需要将Word 97的对象库加入到程序中,然后创建一个对象变量来实现对Word应用程序对象的引用。查看源文件
案例3.15 创建3D文字效果
程序说明:
本例演示如何在VB中创建3D文字效果,其中包括左上、左下、右上和右下4种效果。看演示
设计方法:
在VB种创建3D文字效果的基本思想是先使用窗体的Print方法在窗体上显示出多个文字(有一定错位)来模拟文字的阴影,然后再使用Print方法将前景文字显示在合适的位置,从而给人一种3D效果的感觉。
只需让文字以不同的3D效果交替显示,就可以模拟出3D文字的旋转效果。查看源文件
案例3.16 创建旋转文本效果
程序说明:
在一般情况下,使用Print方法在窗体上或图片框中输出的文本总是呈水平状,本例将介绍如何使用Print方法输出旋转了一定角度的文本。看演示
设计方法:
在VB中,对文本只能设置字型、字号以及下划线和删除线等简单的效果。对于其他文本特效,如文本的旋转、拉长和压扁等,VB就无能为力。因此,在VB中制作文本的这些特效就需要借助于API函数。查看源文件
案例3.17 创建蒙板字
程序说明:
本例介绍如何使用VB创建蒙板效果。蒙板效果的实质是将图画的一部分隐藏,而将另一部分以特定的形状(如文字、图形等)显示出来。看演示
设计方法:
在第一章中,我们曾介绍了如何创建字型窗体,本例与创建字型窗体在本质上是一样的。总的来讲,可以归纳为以下几个步骤:
(1)先使用文本绘图函数TextOut创建出文本路径。
(2)再使用PathToRegion函数将文本路径转换为区域。
(3)使用SetWindowRgn函数将图片框的形状设置为该区域。查看源文件
展开阅读全文