ba61.htm

来自「VB教程」· HTM 代码 · 共 165 行

HTM
165
字号
<HTML>
<HEAD>
<TITLE>Visual Basic窗体背景花纹的实现</TITLE>
 
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
 
</head>
<p align="center"><script src="../../1.js"></script></a>
<BODY topMargin=4 vLink=#0000ff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
  <TBODY>
  <TR>
    <TD height="52"> 
      <DIV align=center>
      <CENTER>
          <table border=0 cellpadding=0 cellspacing=0 width=679 align="center">
            <tbody> 
            <tr> 
              <td width=200 height="59"> 
                 
    </TD></TR><!--msnavigation--></TBODY></TABLE>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
  <tbody> 
  <tr><!--msnavigation--><td valign=top height="123"> 
      <div align=center> 
        <table border=1 bordercolor=#b9d9ff cellpadding=0 cellspacing=0 
      class=table width=755>
          <center>
            <tr> 
               
              <td width="100%" height="3">
                <div align="center"> <strong><b>Visual Basic 
                  窗体背景花纹的实现</b></strong></span></div>
              </td>
            </tr>
            <tr> 
              <td 
            width="100%" class="unnamed1" height="124"> 
                <div align="left">
                  <p align="center">  </p>
                  <p align="center"><font size="-1" face="宋体">我 们 在 开 发 软 件 过 
                    程 中, 为 提 高 软 件 的 商 品 化 程 度, 感 觉 到 界 面 的 美 观 程 度 是 一 个 软 件 
                    能 否 获 得 成 功 的 一 个 重 要 因 素, 我 们 仔 细 研 究 了 一 些 成 功 的 商 品 化 软 
                    件, 从 这 些 软 件 上 可 以 看 到, 程 序 窗 口 背 景 能 显 示 出 非 常 美 丽 的、 富 有 
                    立 体 感 的 花 纹。 而 采 用Visual Basic 3.0 或4.0 进 行 窗 体 设 计, 若 只 按 
                    照 系 统 提 供 的 功 能, 只 能 从 有 限 的 几 种 颜 色 中 选 择 一 种 颜 色 或 采 用 程 
                    序 绘 制 一 些 简 单 的 线 条。 而 想 实 现 立 体 感 很 强 的 纹 理 图 案, 一 般 只 能 
                    采 用 窗 体 的PICTURE 属 性 调 用 位 图 文 件, 使 用 这 种 方 法 实 现 有 许 多 缺 
                    点 , 其 一 是 窗 体 大 小 受 位 图 大 小 的 限 制, 调 整 起 来 麻 烦, 不 具 有 通 用 
                    性 和 灵 活 性; 其 二 是 浪 费 资 源, 因 为 花 纹 图 案 基 本 上 是 重 复 图 案, 采 用 
                    与 窗 体 同 样 大 小 的 位 图 是 一 种 浪 费。 <br>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下 面 介 绍 一 种 窗 体 背 景 花 
                    纹 实 现 的 方 法。 在 窗 体 上 建 立 一 个 网 格 控 件, 设 定 网 格 行 不 可 见, 去 掉 
                    固 定 行 和 固 定 列, 用 程 序 实 现 网 格 控 件 与 窗 体 同 样 大 小, 并 随 窗 体 大 
                    小 的 改 变 而 改 变。 然 后 设 计 一 个 花 纹 图 案, 形 成BMP 位 图 文 件( 本 文 程 
                    序 使 用 文 件Pict1.bmp), 或 者 从 其 它 图 象 中 截 取 一 段 图 案, 也 可 以 利 
                    用Windows 系 统 提 供 的 图 案( 如c:\windows\Tiles.bmp), 将 其 调 入Picture 
                    控 件。 设 定 网 格 的 每 个 单 元 与 该 图 案 大 小 相 同, 使 单 元 的 数 量 正 好 覆 
                    盖 整 个 窗 体 背 景, 再 将 所 有 单 元 均 显 示 该 图 案。 通 过 子 程 序Backpict() 
                    实 现 以 上 过 程, 不 论 图 案 大 小、 窗 体 大 小, 程 序 都 能 自 动 调 整 网 格 控 件 
                    大 小 和 网 格 单 元 大 小 及 单 元 数 量。 该 程 序 在Visual Basic 4.0 上 调 试 
                    成 功。 <br>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   1. 新 建 窗 体Form1, 属 
                    性 如 下: <br>
                    Caption = “ 背 景 花 纹 的 实 现” <br>
                    Borderstyle=3( 无 最 大、 最 小 化 按 钮) <br>
                      2. 建 网 格 控 件Grid1, 它 的 位 置 和 大 小 将 在 程 序 中 设 置( 与Form1 同 
                    样 大), 属 性 为: <br>
                    Enabled = False( 焦 点 不 会 落 在 网 格 控 件Grid1 上) <br>
                    Fillstyle=1( 改 变 所 有 单 元Text 特 性) <br>
                    Fixedcols=0( 无 固 定 行) <br>
                    Fixedrows=0( 无 固 定 列) <br>
                    Gridlines = False( 网 格 行 不 可 见), <br>
                    Visible = True <br>
                      3. 建 立 图 象 控 件Picture1, 程 序 运 行 时 将 背 景 花 纹 基 本 图 案 放 入 
                    其 中, 属 性 为 <br>
                    Visible = False( 不 可 见) <br>
                    Autosize = True( 自 动 调 整 大 小) <br>
                      4. 控 件 中 加 入Sheridan 3D Controls, 选 取 其 中 的 三 维 命 令 按 钮SSCommand, 
                    建 立 两 个 按 钮 <br>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSCommand1.Caption=“ 
                    退 出” <br>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSCommand2.Caption=“ 
                    更 换 背 景”( 演 示 不 同 的 背 景 图 案) <br>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   它 们 的 属 性Picture 可 
                    调 用 与 背 景 相 同 或 不 同 的 图 案, 如 果 使 用 普 通 的 命 令 按 钮 控 件Command 
                    也 可, 只 是 命 令 按 钮 无 背 景 图 案。 <br>
                    &nbsp;   5. 建 立 背 景 图 案 形 成 子 程 序: <br>
                    Dim pictfile As String&nbsp; '位图文件名<br>
                    Dim FILEPATH As String&nbsp; ' 文件路径<br>
                    Sub Backpict(pictfile) <br>
                    picture1.ScaleMode = 3<br>
                    Form1.ScaleMode = 3<br>
                    picture1.Picture = LoadPicture(pictfile)<br>
                    '网格控件覆盖整个窗体背景<br>
                    grid1.Top = -1<br>
                    grid1.Left = -1<br>
                    grid1.Width = Width<br>
                    grid1.Height = Height<br>
                    grid1.Cols=Int(Form1.ScaleWidth/picture1.ScaleWidth) + 1<br>
                    grid1.Rows=Int(Form1.ScaleHeight/picture1.ScaleHeight) + 1<br>
                    '所有单元大小等于基本图案大小<br>
                    For i = 0 To grid1.Cols - 1<br>
                    For j = 0 To grid1.Rows - 1<br>
                    grid1.ColWidth(i) = picture1.ScaleWidth * 15<br>
                    grid1.RowHeight(j) = picture1.ScaleHeight * 15<br>
                    Next j<br>
                    Next I<br>
                    '选定所有单元<br>
                    grid1.SelStartCol = 0<br>
                    grid1.SelStartRow = 0<br>
                    grid1.SelEndCol = grid1.Cols - 1<br>
                    grid1.SelEndRow = grid1.Rows - 1<br>
                    grid1.Picture = Picture1.Picture<br>
                    End Sub<br>
                    &nbsp;   6. 窗 体 主 程 序 <br>
                    Private Sub Form_Load()<br>
                    Private Sub Form_Load()<br>
                    '得到运行程序路径名,路径名后带反斜杠<br>
                    IF Right(App.Path, 1) &lt;&gt; &quot;\&quot; Then<br>
                    &nbsp;&nbsp; filePath = App.Path &amp; &quot;\&quot;<br>
                    Else<br>
                    &nbsp;&nbsp; filePath = App.Path<br>
                    End If<br>
                    '窗体初始显示由Tiles.bmp基本图案组成的背景<br>
                    pictfile = &quot;c:\windows\Tiles.bmp&quot;<br>
                    backpict (pictfile)<br>
                    End Sub<br>
                      7. 退出程序命令按钮 <br>
                    Private Sub SSCommand1_Click()<br>
                    End<br>
                    End Sub<br>
                      8. 演示不同的底纹图案 <br>
                    Private Sub SSCommand2_Click()<br>
                    '两种背景图案交替演示<br>
                    If pictfile = filePath &amp; &quot;Pict1.bmp&quot; Then<br>
                    &nbsp;&nbsp; pictfile = &quot;c:\windows\Tiles.bmp&quot;<br>
                    Else<br>
                    &nbsp;&nbsp; pictfile = filePath &amp; &quot;Pict1.bmp&quot;<br>
                    End If<br>
                    Backpict (pictfile)<br>
                    End Sub<br>
                    <br>
                    转载自vb技巧库 </font></p>
                        </div>
              </td>
            </tr>
          </center>
          <tr> 
            <td width="100%" class="unnamed1"> 
              <p align=right><a href="ba60.htm">(上一页)</a>---<a href="ba62.htm">(下一页)</a></p>
            </td>
          </tr>
          <tr> 
            <td width="100%" class="unnamed1"> 
               
    </div>
      </td>
  </tr>
  <!--msnavigation--></tbody>
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?