在 开 发 软 件 过 程 中, 界 面 的 美 观 程 度 是 软 件 商 品 化 程 度 的 一 个 重 要 因 素。 本 文 介 绍 一 种 窗 体 背 景 花 纹 的 实 现 方 法, 为 此, 可 以 方 便 灵 活 地 设 计 出 富 有 立 体 感 的 美 丽 的 背 景。 1. 新 建 窗 体Form1, 属 性 如 下: Caption = “ 背 景 花 纹 的 实 现” Borderstyle=3( 无 最 大、 最 小 化 按 钮) 2. 建 网 格 控 件Grid1, 它 的 位 置 和 大 小 将 在 程 序 中 设 置( 与Form1 同 样 大), 属 性 为: Enabled = False( 焦 点 不 会 落 在 网 格 控 件Grid1 上) Fillstyle=1( 改 变 所 有 单 元Text 特 性) Fixedcols=0( 无 固 定 行) Fixedrows=0( 无 固 定 列) Gridlines = False( 网 格 行 不 可 见), Visible = True 3. 建 立 图 象 控 件Picture1, 程 序 运 行 时 将 背 景 花 纹 基 本 图 案 放 入 其 中, 属 性 为: Visible = False( 不 可 见) Autosize = True( 自 动 调 整 大 小) 4. 控 件 中 加 入Sheridan 3D Controls, 选 取 其 中 的 三 维 命 令 按 钮SSCommand, 建 立 两 个 按 钮: SSCommand1.Caption=“ 退 出” SSCommand2.Caption=“ 更 换 背 景”( 演 示 不 同 的 背 景 图 案) 它 们 的 属 性Picture 可 调 用 与 背 景 相 同 或 不 同 的 图 案, 如 果 使 用 普 通 的 命 令 按 钮 控 件Command 也 可, 只 是 命 令 按 钮 无 背 景 图 案。 5. 建 立 背 景 图 案 形 成 子 程 序: Dim pictfile As String ' 位 图 文 件 名 Dim FILEPATH As String ' 文 件 路 径 Sub Backpict(pictfile) picture1.ScaleMode = 3 Form1.ScaleMode = 3 picture1.Picture = LoadPicture(pictfile) ' 网 格 控 件 覆 盖 整 个 窗 体 背 景 grid1.Top = -1 grid1.Left = -1 grid1.Width = Width grid1.Height = Height grid1.Cols=Int(Form1.ScaleWidth/picture1.ScaleWidth) + 1 grid1.Rows=Int(Form1.ScaleHeight/picture1.ScaleHeight) + 1 ' 所 有 单 元 大 小 等 于 基 本 图 案 大 小 For I = 0 To grid1.Cols - 1 For j = 0 To grid1.Rows - 1 grid1.ColWidth(I) = picture1.ScaleWidth * 15 grid1.RowHeight(j) = picture1.ScaleHeight * 15 Next j Next I ' 选 定 所 有 单 元 grid1.SelStartCol = 0 grid1.SelStartRow = 0 grid1.SelEndCol = grid1.Cols - 1 grid1.SelEndRow = grid1.Rows - 1 grid1.Picture = Picture1.Picture End Sub 6. 窗 体 主 程 序: Private Sub Form_Load() ' 得 到 运 行 程 序 路 径 名, 路 径 名 后 带 反 斜 杠 If Right(App.Path, 1) <> "\" Then filePath = App.Path & "\" Else filePath = App.Path End If ' 窗 体 初 始 显 示 由Tiles.bmp 基 本 图 案 组 成 的 背 景 pictfile = "c:\windows\Tiles.bmp" backpict (pictfile) End Sub 7. 退 出 程 序 命 令 按 钮: Private Sub SSCommand1_Click() End End Sub 8. 演 示 不 同 的 底 纹 图 案: 本 文 选 取 了Windows+Tiles.bmp 图, 读 者 也 可 以 选 取 自 己 喜 爱 的 其 它 图 形。 代 码 如 下: Private Sub SSCommand2_Click()' 两 种 背 景 图 案 交 替 演 示 If pictfile = filePath & "Pict1.bmp" Then pictfile = "c:\windows\Tiles.bmp" Else pictfile = filePath & "Pict1.bmp" End If Backpict (pictfile) End Sub |