schack8888
风云使者
风云使者
  • 注册日期2010-12-06
  • 发帖数686
  • QQ
  • 火币3641枚
  • 粉丝161
  • 关注102
阅读:5580回复:0

[系统教程]VB 神童教程第二章第十二节——综合示例五

楼主#
更多 发布于:2011-10-23 17:23

有如图一这样一个应用程序,分别拖动红、绿、蓝三个滚动框来决定文本框的背景色,另外还有一个竖向滚动条,可以用来控制文本框的大小。

图片:50_214_f7fdd635eaac939.gif


图一
一、图像的着色问题:
自然界中千变万化的色彩,在电脑上可以用红绿蓝三种原色组合而成,这也正是图像处理软件中 RGB 模式的原理所在,如黑色是由皆为 0 的红绿蓝三种颜色组成,白色为皆为 255 的三原色合成,等等。

在 RGB 模式中,每种色彩最多有 255 种变化,也就是说,只要 R 、G 、B 三种色彩都在各自的 255 范围内,这种色彩就是有效的。
在 VB 中,也用 RGB 来作为色彩的描述,如文本框的背景色为白色,则表示为:Text1.Backcolor = RGB(255,255,255)。
二、VB 中对象的初值储存问题:
在VB中,常常会对某个对象进行位置移动,或者动态改变对象的尺寸,一般情况下,都会在程序调入后先对原始数据进行一些存储,以便发生位移或改变大小后能恢复原样,而这一功能,是通过初值储存来完成的。

方法是,将原始数据,如坐标值、原始长宽高,等等,赋值给某个变量,最后通过变量的调用就能完成默认状态的恢复。
三、程序设计:
1、创建如图一的程序界面。
文本框的属性:
Name:TxtContent  Text:None

三个表示色彩的标签:
红色标签,Name:LblRed  Caption:红色
绿色标签,Name:LblGreen  Caption:绿色
蓝色标签,Name:LblBlue  Caption:蓝色

三个表示色彩的横向滚动条:
Min:0  Max:255  SmallChange:1  LargeChange:5

显示“大小”字样的标签:
Name:LblSize  Caption:大小

对文本框大小进行控制的竖向滚动条:
Name:VsbSize  Min:0  Max:100  SmallChange:1  LargeChange:5

用于显示大小变化尺寸的标签:
Name:LblShow  Caption:None

2、双击红色滚动条,在弹出的程序代码窗口中输入:
Private Sub HsbRed_Change()
TxtContent.BackColor = RGB(HsbRed.Value, HsbGreen.Value, HsbBlue.Value)
End Sub

另外,就 HsbRed 的 Scroll 事件也输入上面的代码:
Private Sub HsbRed_Scroll()
TxtContent.BackColor = RGB(HsbRed.Value, HsbGreen.Value, HsbBlue.Value)
End Sub

3、同理所得,在绿色与蓝色滚动条中输入相应代码。这样,通过滚动条控制文本框背景色的目的达到了。
4、在“通用”选项中定义全局全量,用来储存文本框的原始尺寸:
Dim Iwidth As Integer
Dim Iheight As Integer

5、用来改变文本框尺寸的竖向滚动条:
Change 事件:
Private Sub VsbSize_Change()
TxtContent.Width = Iwidth * (VsbSize.Value / 100)
TxtContent.Height = Iheight * (VsbSize.Value / 100)
LblShow.Caption = VsbSize.Value ; "%"
End Sub

Scroll 事件:
Private Sub VsbSize_Scroll()
TxtContent.Width = Iwidth * (VsbSize.Value / 100)
TxtContent.Height = Iheight * (VsbSize.Value / 100)
LblShow.Caption = VsbSize.Value ; "%"
End Sub

6、调试:
按 F5 键进行调试,发现文本框的尺寸无法调整。这是因为,没有在初始状态
下将原文本框的宽度、高度赋值给变量。

在 Form 的 Load 事件中输入以下代码:
Private Sub Form_Load()
Iwidth = TxtContent.Width
Iheight = TxtContent.Height
LblShow.Caption = "100%"
End Sub

7、最后结果如图二:

图片:50_214_9edf15b61740435.gif


图二

喜欢0 评分0
兼职版主
游客

返回顶部