Visual Basic 中字符淡出淡入的实现

2008-02-23 06:54:09来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

---- 笔 者 偶 尔 在《 计 算 机 世 界》 上 读 到 一 篇 关 于 在 VISUAL FOXPRO 中 实 现 字 符 的 淡 出 淡 入 的 文 章, 受 此 启 发, 笔 者 参 照 原 文 章 用Visual Basic4.0 也 编 写 了 一 段 类 似 的 字 符 的 淡 出 淡 入 程 序, 以 此 说 明 Microsoft 的 可 视 化 开 发 工 具 具 有 的 共 性: 相 同 或 相 似 的 图 形 用 户 界 面(GUI), 面 向 对 象 和 事 件 驱 动 的 特 性 以 及 相 同 或 相 似 的 函 数 等 等。 这 个 特 点 使 得 程 序 开 发 和 设 计 人 员 可 以 借 鉴 使 用 不 同 的Microsoft 可 视 化 工 具 开 发 的 应 用 程 序, 并 进 行 方 便 的 移 植, 缩 短 开 发 周 期。 同 时, 这 对 计 算 机 语 言 的 学 习 可 以 起 到 触 类 旁 通 的 作 用。

---- 字 符 的 淡 入 淡 出 功 能 可 以 通 过 对 标 签(LABEL) 控 件 的 前 景 做 不 断 的 改 变 来 完 成。 控 件 前 景 的 变 化,
可 以 在 设 计 时 用 标 签 控 件 的 前 景 属 性 来 设 置, 也 可 以 在 程 序 中 通 过 给 前 景 属 性 赋 予 不 同 的 色 彩 值 来 实 现。 色 彩 由RGB 函 数 提 供(Visual Foxpro 也 有 该 函 数)。 用 定 时 器 控 件 产 生 的 中 断 不 断 改 变RGB 参 数 值,因 此 能 够 使 得 字 符 的 前 景 随 之 改 变, 实 现 了 淡 出 淡 入 的 目 的。

---- 下 面 用Visual Basic4.0 编 写 的 程 序 完 成 了 两 个 功 能:(1) 字 符 的 淡 出 淡 入, 而 且 颜 色 的 变 化 有 256*256*256 种, 此 处 只 选 择 了 由 灰 色 到 红 色 的 变 化;

(2) 淡 出 时 字 符 由 小 到 大, 淡 入 时 则 由 大 到 小。 另 外, 本 程 序 的 实 现 过 程 可 完 全 方 便 地 向Visual C、Visual Java 等 可 视 话 语 言 移 植。

---- 一. 启 动Visual Basic 4.0 , 自 动 生 成 一 个 窗 体, 默 认 为FORM1。

---- 二. 将 该 窗 体 的 属 性 设 置 如 下:

NAME:DEMO
CAPTION:VB 实 现 字 符 的 淡 入 淡 出
BACKCOLOR:&H00C0C0C0%, 即 背 景 为 灰 色

---- 三. 在 窗 体DEMO 中 定 义 以 下 窗 体 变 量, 即 在General-declaration 过 程 中 定 义 色 彩 参 数R,G,B。

Dim r As Integer
Dim g As Integer
Din b As Integer

---- 四. 在Form-load 过 程 中 设 置 字 符 色 彩 初 值, 即 灰
色:

Private Sub Form_Load()
r = 192
g = 192
b = 192
End Sub

---- 五. 在 窗 体DEMO 中 加 入 一 标 签, 其 属 性 设 置 如 下:

NAME:LABEL1
CAPTION: 哈 尔 滨 国 投 债 券 交 易 系 统
AUTOSIZE:TRUE, 用 以 实 现 字 符 的 缩 放
BACKSTYLE:0-TRANSPARENT, 即 透 明
FONT: 字 体 为 隶 书, 大 小 选 择 为8

---- 六. 在 窗 体 中 加 入 定 时 器 控 件, 用 以 完 成 淡 出 功 能, 设 置 如 下:

NAME:OUTTIMER
INTERVAL:50, 即 隔 一 秒 中 断 一 次, 色 彩 变 化 一 次。

---- 七. 再 加 入 一 个 定 时 器, 完 成 淡 入 功 能:

NAME:INTIMER
INTERVAL:50

---- 八. 在OUTTIMER 的TIMER 过 程 中 加 入 以 下 代 码:

Private Sub Outtimer_Timer()
If r < 255 Then
r = r 1
Else
r = 255
End If
If g > 3 Then
g = g - 3
Else: g = 0
End If
If b > 3 Then
b = b - 3
Else: b = 0
End If
Label1.FontSize = Label1.FontSize 0.75
Label1.ForeColor = RGB(r, g, b)
If Label1.FontSize >= 72 Then
Outtimer.Enabled = False
Intimer.Enabled = True
End If
End Sub

---- 九. 在INTIMER 中 加 入 如 下 代 码:

Private Sub Intimer_Timer()
If r > 192 Then
r = r - 1
Else
r = 192
End If
If g < 192 Then
g = g 3
Else: g = 192
End If
If b < 192 Then
b = b 3
Else: b = 192
End If
Label1.FontSize = Label1.FontSize - 0.75
Label1.ForeColor = RGB(r, g, b)
If Label1.FontSize <= 8 Then
Intimer.Enabled = False
Outtimer.Enabled = True
End If
End Sub

---- 当 完 成 上 述 步 骤 后, 按 运 行 按 扭, 就 可 看 到 在 窗 体 内“ 哈 尔 滨 国 投 证 券 交 易 系 统” 几 个 字 由 小 到 大、 有 浅 入 深 地 显 示 出来; 当 字 体 达 到 规 定 的 大 小 时, 又 渐 渐 地 消 失 在 窗 体 之 中, 实 现 淡 出 淡 入 的 功 能。

上一篇: 用Visual Basic的Move方法实现动画效果
下一篇: Visual Basic 中制作流水灯

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:用VB制作下雪的特技景象

下一篇:用VB 5.0从Recordset中打印列表