|
Visual Basic 中字符淡出淡入的实现 |
来源:转载 人气:939 录入时间:2007-11-8 |
笔 者 偶 尔 在《 计 算 机 世 界》 上 读 到 一 篇 关 于 在 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
当 完 成 上 述 步 骤 后, 按 运 行 按 扭, 就 可 看 到 在 窗 体 内“ 哈 尔 滨 国 投 证 券 交 易 系 统” 几 个 字 由 小 到 大、 有 浅 入 深 地 显 示 出来; 当 字 体 达 到 规 定 的 大 小 时, 又 渐 渐 地 消 失 在 窗 体 之 中, 实 现 淡 出 淡 入 的 功 能。
|
|
|