?? 31.txt
字號(hào):
Visual Basic 窗體背景花紋的實(shí)現(xiàn)
我 們 在 開 發(fā) 軟 件 過 程 中, 為 提 高 軟 件 的 商 品 化 程 度, 感 覺 到 界 面 的 美 觀 程 度 是 一 個(gè) 軟 件 能 否 獲 得 成 功 的 一 個(gè) 重 要 因 素, 我 們 仔 細(xì) 研 究 了 一 些 成 功 的 商 品 化 軟 件, 從 這 些 軟 件 上 可 以 看 到, 程 序 窗 口 背 景 能 顯 示 出 非 常 美 麗 的、 富 有 立 體 感 的 花 紋。 而 采 用Visual Basic 3.0 或4.0 進(jìn) 行 窗 體 設(shè) 計(jì), 若 只 按 照 系 統(tǒng) 提 供 的 功 能, 只 能 從 有 限 的 幾 種 顏 色 中 選 擇 一 種 顏 色 或 采 用 程 序 繪 制 一 些 簡(jiǎn) 單 的 線 條。 而 想 實(shí) 現(xiàn) 立 體 感 很 強(qiáng) 的 紋 理 圖 案, 一 般 只 能 采 用 窗 體 的PICTURE 屬 性 調(diào) 用 位 圖 文 件, 使 用 這 種 方 法 實(shí) 現(xiàn) 有 許 多 缺 點(diǎn) , 其 一 是 窗 體 大 小 受 位 圖 大 小 的 限 制, 調(diào) 整 起 來 麻 煩, 不 具 有 通 用 性 和 靈 活 性; 其 二 是 浪 費(fèi) 資 源, 因 為 花 紋 圖 案 基 本 上 是 重 復(fù) 圖 案, 采 用 與 窗 體 同 樣 大 小 的 位 圖 是 一 種 浪 費(fèi)。
下 面 介 紹 一 種 窗 體 背 景 花 紋 實(shí) 現(xiàn) 的 方 法。 在 窗 體 上 建 立 一 個(gè) 網(wǎng) 格 控 件, 設(shè) 定 網(wǎng) 格 行 不 可 見, 去 掉 固 定 行 和 固 定 列, 用 程 序 實(shí) 現(xiàn) 網(wǎng) 格 控 件 與 窗 體 同 樣 大 小, 并 隨 窗 體 大 小 的 改 變 而 改 變。 然 后 設(shè) 計(jì) 一 個(gè) 花 紋 圖 案, 形 成BMP 位 圖 文 件( 本 文 程 序 使 用 文 件Pict1.bmp), 或 者 從 其 它 圖 象 中 截 取 一 段 圖 案, 也 可 以 利 用Windows 系 統(tǒng) 提 供 的 圖 案( 如c:\windows\Tiles.bmp), 將 其 調(diào) 入Picture 控 件。 設(shè) 定 網(wǎng) 格 的 每 個(gè) 單 元 與 該 圖 案 大 小 相 同, 使 單 元 的 數(shù) 量 正 好 覆 蓋 整 個(gè) 窗 體 背 景, 再 將 所 有 單 元 均 顯 示 該 圖 案。 通 過 子 程 序Backpict() 實(shí) 現(xiàn) 以 上 過 程, 不 論 圖 案 大 小、 窗 體 大 小, 程 序 都 能 自 動(dòng) 調(diào) 整 網(wǎng) 格 控 件 大 小 和 網(wǎng) 格 單 元 大 小 及 單 元 數(shù) 量。 該 程 序 在Visual Basic 4.0 上 調(diào) 試 成 功。
1. 新 建 窗 體Form1, 屬 性 如 下:
Caption = “ 背 景 花 紋 的 實(shí) 現(xiàn)”
Borderstyle=3( 無 最 大、 最 小 化 按 鈕)
2. 建 網(wǎng) 格 控 件Grid1, 它 的 位 置 和 大 小 將 在 程 序 中 設(shè) 置( 與Form1 同 樣 大), 屬 性 為:
Enabled = False( 焦 點(diǎn) 不 會(huì) 落 在 網(wǎng) 格 控 件Grid1 上)
Fillstyle=1( 改 變 所 有 單 元Text 特 性)
Fixedcols=0( 無 固 定 行)
Fixedrows=0( 無 固 定 列)
Gridlines = False( 網(wǎng) 格 行 不 可 見),
Visible = True
3. 建 立 圖 象 控 件Picture1, 程 序 運(yùn) 行 時(shí) 將 背 景 花 紋 基 本 圖 案 放 入 其 中, 屬 性 為
Visible = False( 不 可 見)
Autosize = True( 自 動(dòng) 調(diào) 整 大 小)
4. 控 件 中 加 入Sheridan 3D Controls, 選 取 其 中 的 三 維 命 令 按 鈕SSCommand, 建 立 兩 個(gè) 按 鈕
SSCommand1.Caption=“ 退 出”
SSCommand2.Caption=“ 更 換 背 景”( 演 示 不 同 的 背 景 圖 案)
它 們 的 屬 性Picture 可 調(diào) 用 與 背 景 相 同 或 不 同 的 圖 案, 如 果 使 用 普 通 的 命 令 按 鈕 控 件Command 也 可, 只 是 命 令 按 鈕 無 背 景 圖 案。
5. 建 立 背 景 圖 案 形 成 子 程 序:
Dim pictfile As String '位圖文件名
Dim FILEPATH As String ' 文件路徑
Sub Backpict(pictfile)
picture1.ScaleMode = 3
Form1.ScaleMode = 3
picture1.Picture = LoadPicture(pictfile)
'網(wǎng)格控件覆蓋整個(gè)窗體背景
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()
Private Sub Form_Load()
'得到運(yùn)行程序路徑名,路徑名后帶反斜杠
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. 演示不同的底紋圖案
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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -