文字和图片动态显示的实现技术

2022-03-19 02:00李兴霞
电脑知识与技术 2022年2期

李兴霞

摘要:程序设计过程中经常需要动态显示文字和图片,文章对这类问题进行归类研究,采用VB6.0程序设计语言,分别实现“字符串的动态显示”“字符串的水平移动”“图片按比例放大”“图片移动”和“图片的徐徐展开”等功能,实现的原理简单、技巧较高,具有一定的实用价值。

关键词:动态显示;时间控件;图像控件

中图分类号:TP37       文献标识码:A

文章编号:1009-3044(2022)02-0098-02

使用VB6.0实现文字和图片的动态显示,需要用到三个控件,分别为时间控件(timer)、标签控件(label)和图像控件(image)[1]。时间控件有两个重要属性Enabled和Interval,时间间隔的单位是千分之一秒,在给定的较短的时间间隔执行时间事件,对字符串或图片在窗体上输出,从而实现动态显示效果。属性Enabled为True时,启动时间控件;属性Enabled为False时,终止时间控件。要文字在屏幕水平移动,用标签控件可以很好地解决问题。显示图片有两个控件可选,分别为图片控件(PictureBox)和图像控件,以下采用图像控件,主要是由于图像控件有独特的Stretch属性,该属性为True可使图像大小适合图像控件大小,图片可伸缩,更容易编写程序[2]。

1 字符串的动态显示

对于某个字符串,设定显示位置显示第1个汉字,间隔某个时间后,设定显示位置显示第2个汉字,依次重复直到字符串最后一个汉字显示完成为止[3]。在显示汉字之前,可设定窗体的前景颜色(输出汉字的颜色),还可设置窗体上输出的字体类型和字体大小[4]。

本实例用到timer控件,初始设置属性如下:

Timer1.Enabled=True

Timer1.interval=100

根据不同的需要,可调整时间间隔,改写程序也可实现纵向显示,横向显示的具体参考程序如下:

Dim a As String

Dim i, m, x, y As Integer

Private Sub Form_Load()

x =0

y = 2000                            'x,y第1个汉字的显示位置

Form1.ForeColor = RGB(0, 0, 255)    '设置前景为蓝色

Form1.Font = "楷体"                 '设置输出为楷体

Form1.FontSize = 40                 '设置字号为40

a = "电脑知识与技术"

m = Len(a)                          'm为汉字个数

i = 1

End Sub

Private Sub Timer1_Timer()

Form1.CurrentX = x + (i - 1) * 800  '计算显示汉字位置

Print Mid$(a, i, 1);                '输出第i个汉字

If i = m Then

Timer1.Enabled = False             '输出最后一个汉字后,时间控件停止工作

Else

i = i + 1

End If

End Sub

2 字符串的水平移动

字符串水平移动用到标签(label)和时间控件,标签的left和top属性确定标签的左上角位置,通过增加标签的left值,保证标签的top值不变,就能使标签水平右移。Form_Load过程段进行标签的初始化,调整标签的大小使其能夠正常显示[5]。设置Timer1.interval设为200,每次执行时间事件修改标签的left和top值,时间间隔设置越短,字符串移动越快,可根据需要进行调整,实例参考程序如下:

Dim a As String

Dim i, m,  x, y As Integer

Private Sub Form_Load()

x = 0

y = 2000                            'x,y字符串的初始显示位置

Label1.Left = x

Label1.Top = y

Label1.ForeColor = RGB(0, 0, 255)   '设置标签前景为蓝色

Label1.Font = "楷体"  '设置标签文字输出为楷体

Label1.FontSize = 40   '设置标签文字字号为40

Label1.Caption = "电脑知识与技术"

m = 40                              'm为水平移动次数

i = 1

End Sub

Private Sub Timer1_Timer()

Label1.Left = x                     '设置标签移动的新位置

Label1.Top = y

If i = m Then

Timer1.Enabled = False     '移动次数完成,时间控件停止工作

Else

i = i + 1

End If

x = x + 200                         '水平右移增量为200

End Sub

3 图片按比例放大

本实例用到图像控件(image)和时间控件,image1的Stretch属性设为True,调整好图片的大小,用image1的picture属性选择图片,初始时Timer1.interval设为200,每次执行时间事件按比例调整image1的宽度和高度,从而实现图片的放大。图片放大和缩小还有一种方式,放大时image1的宽度和高度乘以大于1的系数比如1.1,缩小时image1的宽度和高度乘以小于1的系数比如0.9。实例参考程序如下:

Dim s As Integer

Private Sub Form_Load()

s = 50                                  's为放大的次数

End Sub

Private Sub Timer1_Timer()

Dim k As Single

s = s - 1

If s = 0 Then

Timer1.Enabled = False

End If

k = Image1.Width / Image1.Height        'k为图片宽度与高度比

Image1.Width = Image1.Width + 100 * k   '图片宽度增加100*K,保证图片的比例

Image1.Height = Image1.Width + 100      '图片高度增加100

End Sub

4 图片移动

图片移动用到图像控件(image)和时间控件,image1的Stretch屬性设为True,调整好图片的大小,用image1的picture属性选择图片,初始时Timer1.interval设为100,每次时间事件用move方法把image1移动到新的位置或直接修改image1的左上角坐标,从而实现image1的移动[6]。实例参考程序如下:

Dim s As Integer

Private Sub Form_Load()

s = 50                              's为移动图片的次数

End Sub

Private Sub Timer1_Timer()

s = s - 1

If s = 0 Then

Timer1.Enabled = False

End If

x = Image1.Left + 50                'x,y为图片新的位置坐标

y = Image1.Top + 50

Image1.Left = x                     '设置图片新的位置

Image1.Top = y      'Image1.Move x, y也可实现这两句功能

End Sub

5 图片的徐徐展开

图片的徐徐展开用到图像控件(image)和时间控件,初始时Timer1.interval设为100,调整好图片的大小,用image1的picture属性选择图片,每次时间事件把image1的Width属性值逐渐增大,可看到的画面逐渐展现,从而实现图片徐徐展开的效果。当image1的Stretch设为True时,图片横向是压缩的,图片展开就好像把横向压缩的图片横向拉伸;当image1的Stretch设为False时,图片展开就好像把一幅遮挡的画逐渐展开,实现不同的展开效果。实例参考程序如下:

Dim s As Integer

Private Sub Form_Load()

Image1.Width = 100

s = 100

End Sub

Private Sub Timer1_Timer()

s = s - 1

If s = 0 Then

Timer1.Enabled = False

End If

Image1.Width = Image1.Width + 100

End Sub

6 结束语

本文给出了文字和图片动态显示实用技术,动态文字的输出可设置色彩、字体和颜色等属性,图片也给出了几种动态显示方式,并且很容易拓展新的动态显示方式。文中方法具有实现原理简单、易于编程的特点,对于采用其他高级语言编写程序也有一定的参考价值。可以根据实际需求,把动态文字和动态图片相结合,编写出生动的、有设计感的屏幕输出效果。

参考文献:

[1] 陈明晰,杨谨全.Visual Basic程序设计[M].北京:清华大学出版社,2019.

[2] 张勇.Visual Basic课程设计案例精编[M].北京:中国水利出版社,2002.

[3] 于秀丽.数据结构与数据库应用教程[M].北京:清华大学出版社,2019.

[4] 胥淑华.VB实例——文字的随机变幻立体效果[J].电子世界,2019(1):109.

[5] 黄婷.利用VB进行文字特殊效果的处理[J].电脑编程技巧与维护,2018(9):145-158.

[6] 朱苗苗,牛国锋,郭凯.基于VB 与MSChart实现蜡沉积预测数据图形化显示[J].兰州理工大学学报,2017,43(1):71-75.

【通联编辑:梁书】

2818500511271