说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用Visual Basic窗体背景花纹的实现

HTML文档下载 WORD文档下载 PDF文档下载
用Visual Basic窗体背景花纹的实现
作者:曹秀英
我 们 在 开 发 软 件 过 程 中, 为 提 高 软 件 的 商 品 化 程 度, 感 觉 到 界 面 的 美 观 程 度 是 一 个 软 件 能 否 获 得 成 功 的 一 个 重 要 因 素, 我 们 仔 细 研 究 了 一 些 成 功 的 商 品 化 软 件, 从 这 些 软 件 上 可 以 看 到, 程 序 窗 口 背 景 能 显 示 出 非 常 美 丽 的、 富 有 立 体 感 的 花 纹。 而 采 用Visual Basic 3.0 或4.0 进 行 窗 体 设 计, 若 只 按 照 系 统 提 供 的 功 能, 只 能 从 有 限 的 几 种 颜 色 中 选 择 一 种 颜 色 或 采 用 程 序 绘 制 一 些 简 单 的 线 条。 而 想 实 现 立 体 感 很 强 的 纹 理 图 案, 一 般 只 能 采 用 窗 体 的PICTURE 属 性 调 用 位 图 文 件, 使 用 这 种 方 法 实 现 有 许 多 缺 点 , 其 一 是 窗 体 大 小 受 位 图 大 小 的 限 制, 调 整 起 来 麻 烦, 不 具 有 通 用 性 和 灵 活 性; 其 二 是 浪 费 资 源, 因 为 花 纹 图 案 基 本 上 是 重 复 图 案, 采 用 与 窗 体 同 样 大 小 的 位 图 是 一 种 浪 费。

下 面 介 绍 一 种 窗 体 背 景 花 纹 实 现 的 方 法。 在 窗 体 上 建 立 一 个 网 格 控 件, 设 定 网 格 行 不 可 见, 去 掉 固 定 行 和 固 定 列, 用 程 序 实 现 网 格 控 件 与 窗 体 同 样 大 小, 并 随 窗 体 大 小 的 改 变 而 改 变。 然 后 设 计 一 个 花 纹 图 案, 形 成BMP 位 图 文 件( 本 文 程 序 使 用 文 件Pict1.bmp), 或 者 从 其 它 图 象 中 截 取 一 段 图 案, 也 可 以 利 用Windows 系 统 提 供 的 图 案( 如c:\windows\Tiles.bmp), 将 其 调 入Picture 控 件。 设 定 网 格 的 每 个 单 元 与 该 图 案 大 小 相 同, 使 单 元 的 数 量 正 好 覆 盖 整 个 窗 体 背 景, 再 将 所 有 单 元 均 显 示 该 图 案。 通 过 子 程 序Backpict() 实 现 以 上 过 程, 不 论 图 案 大 小、 窗 体 大 小, 程 序 都 能 自 动 调 整 网 格 控 件 大 小 和 网 格 单 元 大 小 及 单 元 数 量。 该 程 序 在Visual Basic 4.0 上 调 试 成 功。

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()
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. 演示不同的底纹图案
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
bind(type,data,fn)-JQuery API blur(fn) -JQuery API blur() -JQuery API change(fn) -JQuery API click(fn)-JQuery API click()-JQuery API dblclick(fn) -JQuery API error(fn) -JQuery API focus(fn)-JQuery API focus() -JQuery API hover(over,out)-JQuery API keydown(fn) -JQuery API keypress(fn)-JQuery API keyup(fn)-JQuery API load(fn)-JQuery API mousedown(fn)-JQuery API mousemove(fn)-JQuery API mouseout(fn)-JQuery API mouseover(fn)-JQuery API mouseup(fn)-JQuery API one(type,data,fn)-JQuery API ready(fn)-JQuery API resize(fn)-JQuery API scroll(fn)-JQuery API select(fn)-JQuery API select()-JQuery API submit(fn)-JQuery API submit()-JQuery API toggle(even,odd)-JQuery API trigger(type)-JQuery API unbind(type,fn)-JQuery API 欢迎捧场,一个mm的论坛 windows2000 Professional作服务器可多少人同时访问? 在web应用程序里使用System.Windows.Forms.MessageBox.Show? 100分求助!Delphi中如何open一个含游标Oracle的过程,为什么总是“Error creating cursor handle” 关于数据库连接池的使用问题? 急,急,急,ODBC连接错误 怎样判断一个文件是否存在?怎样彻底删除一个文件? 错误处理,关于Exception急等 寻求:《com原理与应用》的电子版下载? 关于页面刷新的问题? 关于网络流量计算,紧急,在线等待,高手请指教 寻mp3控件,要能读取其tag信息. 请问如何将IE分成两部分,左边是一个APPLET写的tree,右边响应树中节点的事件(链接页面)? 如何才能得到本程序的cpu占有率?而不是总的cpu占有率? 如何编程枚举网上邻居 课件招标!!凡是我觉的有帮助的回答都给分!分不够可以再加!!先来100分!! 谁是高手?在线等待,立马给分! 发邮件问题 单挑高手:一个可变的字符串变量记录着类名(classname),怎么样根据这个符串的值创建所含信息的类实例?? 大放分!!!即放即給 一个在桌面上产生雪花的小程序,请帮忙修改。 请教一个程序速度的问题 辽宁沈阳的凯夫集团有知道情况的么? 好书是那本? 再请saucer(思归, MS .NET MVP),你帮忙得问题用你的方法解决了一半,还差一点。 关于界面控键问题! 为什么在设计时控件的属性不可以修改?在线等候 我的ROOT口令忘了,我该怎么办? 在RedHat8.0上安装Kylix3出现的问题?(关于文件包glibc检查出错)??????? VSS: Unable to check out the file <file> because it is already checked out. 一个暴难问题,关于两台电脑通过一个modem上网的问题。谢谢。 谁是高手,立马给分! 如何使ListControl 内容排序? 无法安装sql2000! 关于inport()和outport()的问题! 哪位仁兄手上有灰度图像的傅立叶变换和反变换的程序代码? 请教高手!死机问题 如何可以让网页内容置中显示,不管客户端的分辨率是多少? 大家注意Acrobat 5与BDE有冲突!! 怎样向客户端输出数据 如何判断一个变量是否定义过?使用if(var)的方法不行,报错 Interbase树形结构和递归调用问题,高手请进!!急!!!! 有谁知道哪有pb8.0汉化版出售。本人是个十足的英语盲! Oracle8 的blob字段,BDE读取报“Invalid Field Type”的错误 Interbase树形结构和递归调用问题,高手请进!!急!!!! 如何选出表中相同的纪录? 下面这些对编程风格的说法是否正确? Interbase树形结构和递归调用问题,高手请进!!急!!!! 请教dos中有没有类似notify的命令用于邮件通知 java有没有RTTI(runtime type information) 在DOS下开发软件,应该如何调用扩展内存? 地方政府赴港招商掀“奢华风” 除积弊总政治部:专业技术三级以上文职干部不官方称老人送孩子上学缺钱买票徒步回家中国正第二次“普查”地方债 专家称债莫斯科航展今起开幕 中国空军表演队首中国拟修法规定广告代言人对虚假广告承山东平度:无法满足陈宝成家补偿要求 北京摔童案嫌犯曾自我改造拿文凭 6次习近平:衡量干部的好与差就看他能不能美媒:美国计划29日导弹打击叙利亚 河南卢氏县委在56年前土坯房办公 书历史揭秘:习仲勋访港破解内地居民偷渡中国要求政府机关办公使用正版软件 禁中日领导人会面? 李保东吁日本不要再北京“最牛别墅”内部曝光 回应:照片教育部:《通用规范汉字表》未恢复一个李某某案周三开庭审理 兰和:相信真相十八大后反腐肃贪:“八只老虎”被关进超百年一遇洪水直逼同江 当地紧急应对中石油3名高管涉嫌严重违纪正接受组织双眼被挖男童称被人用树枝抠眼 被发现拳王一天工资相当C罗五年,买的豪车太多哈议会情绪至油价估多超标,超级大空国际油价难破40美元大关,成品油调价哈弗的H6:翻版吉利博越?有图有证据盘点经济实惠又能够代步的汽车 它竟然2016云南高校职业技能大赛导游服务云南大学MBA旭东队将出征“第五届亚只需关注五大解套法,再也不用担心原油一山可以容\"三虎\",透过她们看人地铁来啦!石家庄地铁1、3号线首列列挪“穷窝”拔“穷根” 河北打好易地[幸福石家庄]体育公园年底建成 各类杨絮漫天飞舞“惹恼”市民 专家支招抗普京纵横捭阖,俄罗斯重回世界中心指日缅甸开始释放政治犯 首批69名学生获美联储为什么忽而鹰派,忽而鸽派?美联储为什么忽而鹰派,忽而鸽派?美联储为什么忽而鹰派,忽而鸽派?美联储回收5000亿,美元再次准备剪李玟获《我是歌手》第四季歌王痛快!中国这个动作振奋13亿国人,美
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘