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

平铺贴图背景 -VB资料

HTML文档下载 WORD文档下载 PDF文档下载
平铺贴图背景 -VB资料
作者:吴斌

为VB窗口增添平铺贴图背景

  “平铺贴图”是Windows壁纸一种经常使用的形式。只要在Windows桌面设置程序中,选择一个Windows自带的图案,或者选择一个自己制作的位图文件并选定“平铺”选项,系统就会将你选择的图案或位图有规则地从左到右、从上到下铺满整个屏幕。其实,通过调用API函数BitBlt,便可轻松自如地为VB应用程序的窗口制作平铺贴图背景。

  BitBlt函数的作用是将位图从一个设备描述表拷贝到另一个与之兼容的设备描述表,它的语法是:BitBlt% (ByVal hDestDC%, ByVal X%, ByVal Y%, ByVal nWidth%, ByVal nHeight%, ByVal hSrcDC%, ByVal XSrc%, ByVal YSrc%, ByVal dwRop&)。其中,参数hDestDC指定目标设备描述表;X和Y指定目标设备描述表中目标矩形左上角的逻辑坐标点;nWidth和nHeight定义被拷贝的矩形图像的宽度和高度;hSrcDC指定目标设备描述表;XSrc和YSrc指定源设备描述表中源矩形左上角的逻辑坐标点;dwRop定义拷贝过程中使用的光栅操作。VB中的Form和PictureBox对象,都有各自相应的设备描述表用于存放它们显示的位图,这些设备描述表可以通过hDC属性存取。由此,我们可以总结出平铺贴图的实现方法:首先,将贴图图案载入一个PictureBox控件的设备描述表,然后,使用BitBlt函数将该设备描述表中的位图重复复制到同一设备描述表中,在复制过程中,通过改变BitBlt函数的X和Y参数控制复制的位置,使位图从左至右从上到下无缝排列,直到设备描述表中的位图尺寸与显示屏幕大小相同为止,最后,将该位图装入Form中显示,就可使该Form具有平铺贴图背景了。下面让我们使用该方法来完成一个实例。

  新建一个VB项目,在缺省窗体Form1中加入一个PictureBox控件Picture1,插入一个模块Module1,在其中加入如下声明语句:

  Declare Function BitBlt Lib "GDI" (ByVal hDestDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal XSrc As Integer, ByVal YSrc As Integer, ByVal dwRop As Long) AsInteger

  Public Const SRCCOPY = &HCC0020

  在项目中加入下列代码:
  Private Sub Form—Load()
   Dim hDCPic As Long
   Dim XPos As Integer
   Dim YPos As Integer
   Dim Ret As Integer
   Dim HeightMax As Integer
   Dim WidthMax As Integer
   Dim WidthPic As Integer
   Dim HeightPic As Integer

  '将位图载入Picture1的设备描述表
   Picture1.ScaleMode = 3
   Picture1.Visible = False
   Picture1.AutoSize = True
   Picture1.AutoRedraw = True

  '在此选择贴图的图案文件
   Picture1.Picture = LoadPicture("tile.bmp")

  '初始化变量
   HeightMax = Screen.Height \ Screen.TwipsPerPixelY
   WidthMax = Screen.Width \ Screen.TwipsPerPixelX
   WidthPic = Picture1.ScaleWidth
   HeightPic = Picture1.ScaleHeight

  '初始化Picture1的设备描述表以接受平铺贴图
   Picture1.AutoSize = False
   Picture1.Height = Screen.Height
   Picture1.Width = Screen.Width
   hDCPic = Picture1.hDC

  '水平拷贝位图生成平铺贴图的第一行
   For XPos = 0 To WidthMax Step WidthPic
     Ret = BitBlt(hDCPic, XPos, 0, WidthPic, HeightPic, hDCPic, 0, 0, SRCCOPY)
   Next

  '垂直拷贝已生成的第一行直至生成整个平铺贴图
   For YPos = HeightPic To HeightMax Step HeightPic
     Ret = BitBlt(hDCPic, 0, YPos, WidthMax, HeightPic, hDCPic, 0, 0, SRCCOPY)
   Next

  '将Picture1中的位图装入Form显示,然后清除Picture1中的位图
   Me.Picture = Picture1.Image
   Picture1.Picture = LoadPicture("")
   Picture1.AutoRedraw = False

  End Sub

 按F5运行,Form1的窗口内就出现了一个平铺贴图背景。
想扩展你的数据库吗?那么先了解一下I/O 白帽黑客将现场爆料Android系统及框架漏洞 9月13日:程序员节,一起来过节吧! 欲与Siri、Google Now比高低:微软开始打造个人助理Cortana 【开源专访】禅道创始人王春生:覆盖项目全周期,回归管理的本质 携程无线创业者大赛成功落幕 梁建章为头名“快展”颁20万奖金 Bug报告:小角色,大用处! iOS开发者必备: 五大编程类工具 多核优化软件MCx释放EMC VNX闪存潜能 手把手教学:详解HTML5移动开发框架PhoneJS 快速学习新技术的几条建议 研发周报:Angular.js or Ember.js 谁将成为Web开发的新宠? 10款免费且开源的项目管理工具 Greg Pass:拯救Twitter的无名英雄 Cassandra杀回数据库排行Top 10,及需求Java 7的2.0版本 安全专家王清将揭秘“大数据时代的大安全” BrainSpace:跟传统搜索说再见 艾普网络的OpenStack实践 移动周报:无需编程,分秒钟DIY一个移动网站 抢占先机:豌豆荚发布视频搜索产品 Cloud-Connect大会Day1:OCP与SwiftStack 云智能手机,将会很快威胁到Android和iPhone? 直接拿来用!超实用的Java数组技巧攻略 腾讯云俱乐部上海站:电商如何利用云提高核心竞争力 iOS开发者必备:六大图片、图标处理类工具 腾讯向搜狗注资4.48亿美金持股36.5% 推荐五款流行的JavaScript模板引擎 为何人人都将成为程序员?看32位美国顶尖精英的说法! MySQL再度失势:继维基百科之后,Google也迁移到了MariaDB Werner Vogels:亚马逊热爱艺术的CTO Jolla宣布Sailfish OS兼容Android手机硬件和应用 在LotusScript中,如何实现将附件保存于服务器的某目录下? CSDN说这里人气低,决定关了这里,大家快来说话啊,真关了我们就没地方说话了 如何将int转化为char? 如何实现窗口中拖放. 如何确定一个数据窗口有几个参数 数据库程序的运行环境问题求救!!! 寻求vb例程 如何用VB6控制NT的服务 try和catch的问题? 求助~!关于FileListBox的问题 请问要在Web页面中放置ActiveX控件,是不是一定要数字签名才能在客户端安装? 表格内容对齐 where can download the crack about Rational XDE Professional v2002 .Net Edition? 调查:现在大家所用的中文输入法是什么?录入速度是多少? 数据库程序的运行环境建立问题求救!!! 伙计们,帮我看看我的安装差在哪一步了,为何多系统下Linux起不来 如何将文件输入流转化为string? 关一个Servlet调用另一个Servlet的问题 有关报表的一个小问题。 怎样才能做繁体版? 100分请教PHOTOSHOP5.0是如何把CMYK颜色转成RGB显示的? 需求进销存或分销 如何替换某字符串中的指定字符串!!! tcp/ip 如何获取文件的创建时间? 如何再98中删除IE的历史纪录,很怪~~~~~~~~~~~! 讨论:从IDL开始所有的编程工作 大虾们如何动态创建Table的field Editor功能 高分求解!与Delphi的参数问题! xml spy suite4.2需要联机注册,有没有方法可以使用? linux为何没有出现在启动菜单 @_@ 在DELPHI中如何把一目录下的某文件移到另一目录中——急 在C#中如何用BinaryReader把DLL文件的内容读出来,并转来string? 如何根据Task ID或Process ID得到hwnd 如何让程序启动时自动hide()阿! 问一个最大化窗体与任务栏的关系的问题 把一表中一字段(字符型)以一條記錄返回出來. Rational Rose 中没有Delphi方面得模块,哪儿有与Delphi接口下载 谁有ActiveReport 2的中文例子和原程?在线等待!急急急! 大家来讨论一下,《设计模式》应该怎么看!! 关于打印的问题,高手关注! datagrid如何实现分页,。net菜鸟 声音问题 access数据库加密后,如何再用ADO与之连接? 有谁用过ms Agent? 很菜的问题! delphi里的widestring类型对应着BCB里的什么类型啊 开了一个socket,acept后如何给ie发一个字符串显示出来? access数据库加密后,如何再用ADO与之连接? 如何查询出所有用户表名 PWS中的一个小问题 保护环境的作文 50字左右 30篇好文章的开头结尾要相连的最好有排比句式用上名言首尾呼应 发挥想象,写成优美的短文,请用上排比·拟人·比喻等修辞手法1·春姑娘迈着轻盈的步伐来了.她提着神奇的花篮,把五彩的鲜花撒向大地,———————————————————————— 如何计算仓库要多大面积? 好文章的开头和结尾!要散文性的那种!越多越好] 求几种写作手法,修辞的举例.如比喻,拟人,夸张,衬托,对比反问,排比等等每种举例三四个即可, 寒假中最难忘的一件事 看《阿凡达》作文600字600字,内容好要在今晚 5篇好文章里5段好开头结尾 一张方桌由1个桌面,4个桌腿组成,如果1立方米木料可以做方桌的桌面50个或做桌腿300条,现在有5立方米的木料,二元一次方程,我得题目没打错 给一个长10m,宽4.8m的会议室地面铺地砖,要求用正方形地砖,地砖的边长最大是多少请大家帮个忙,只能用算式解 在直径为9厘米的圆形花坛外面有一条宽1米的环形小璐.这条小路的面积是要算式 好的有哲理的文章开头要有哲理的,最好别太长啊,作文开头就可以 优美作文开头和结尾! 我要给你别人无法复制的幸福用英语怎么说 校园里的记忆作文急!600字,最好是自己写的,近快,说个提纲就行。好的话还会加悬赏分 给予作文开头和结尾.(优美些) 克隆人类是非法的用英语怎么说 富有哲理的初中的文章,稍短一点! 关于保护环境从我做起 (50字短文) 不可复制的 英语怎么说 哲理性文章开头 谁有环保金点子600字作文奖50分 一个圆形花坛直径5m,在他周围有一圈宽2m的小路,这条小路的面积是多少? 好的文章开头(环境描写的,和哲理的) 一间会议室长665厘米,宽420厘米,要铺地砖,边长?至少要铺几块? 炒菜用英语怎么说?复制的不要! 关于人生感悟的美文 在一个半径是4米的圆形花坛外面,围绕着一条宽0.8米的小道.这条小道的面积是多少? 学校会议室长4.8米,宽3米.要在地上铺地砖,有两秒正方形规格的地砖(边长6分米,边长8分米)选哪种地砖不用切割能也铺地面?这种方砖至少要买多少块? 小炒丝用英语怎么说 作文 一件令你感动的事要亲身经历过的,自己写的,300字,用来当范文,谢谢!今晚就要. 一间房地面长9米,宽4米,如果所铺地砖边长为6分米,用地砖多少块?这是一道数学题 炒菜锅英语怎么说 学校长方形操场的周长是1000米,其中长是300米.操场面积是多少公顷 最难忘的一件事 作文 ·600字! 炒菜用英语怎么说?跪谢! 初一作文校园风景线600字 写篇作文《最难忘的一件事》600字以上. 感人的事作文开头结尾、范文 童年趣事作文开头结尾、范文 【(各3篇以上)五年级水平,400字以上!急.写作文! 初一作文 校园风景线 急! 作文:最难忘的一件事(600字) 海洋占地球上多大面积? 校园风景线--小学六年级作文 仓库中一个托盘大约占多大面积?就是普通装集装箱的托盘通常都是多大尺寸的?当在仓库中摆放时的间隙通常需要多宽.我需要估算一下所需仓库的面积. 关于爱鸟、保护环境的作文急需作文一篇,关于人类爱鸟、从而保护环境类型,600字. 抄袭我的是猪头用英语怎么说 1680吨货物 50公斤一袋 需要多大面积的仓库 具体的 保护、爱护鸟儿属不属于环保的范畴? 关于以怎样《使我们的世界更美丽》为题写不少于80词的英语作文怎样使我们的世界更美丽 kkkkkkkkkkkkkkkkkkk 建筑木工按模板如何算面积 英语作文《如何让我们的城市更美丽》 春天四年级作文很急拜托了! 请用一元一次方程解题 1.一个方桌由一个桌面和四根桌腿做成.已知1立方米的木料可做桌面请用一元一次方程解题1.一个方桌由一个桌面和四根桌腿做成.已知1立方米的木料可做桌面50个或300 一张方桌有一个桌面和四条腿组成,1立方米木料可制做桌面50张或桌腿300条,现在有50立方米的木料,题目不够打:问用多少木料制作桌面,多少木料制作桌腿用二元一次方程 求100个好文章的开头结尾作业..拜托了..网址也可以,要100个,最好是初中的作文,每个字数不要太多,不少于100条 一张圆桌有一个桌面和四条腿组成,如果1平方米木料可制作圆桌的桌面50个,或制作桌腿300条,现有5平方米木料,请你算一下,用多少木料做桌腿,恰好配成圆桌?(列方程解) 滚英语怎么说 求一些好文章的开头和结尾贴近生活,语句优美,最好有些修辞手法及名人名言分别以成长,校园,家庭为背景好的我会追分的~~ 校园里的记忆 作文600字
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘