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

平铺贴图背景 -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的窗口内就出现了一个平铺贴图背景。
TUP第30期:微软资深专家论如何用Visual Studio开发iOS、Android应用 [开源推荐]Riot.js:不足1KB的MVP客户端框架 研发周报:最难忘的Bug调试经历 NSA如何侵入Google和雅虎的私有数据网络? 飞天5K:开放比开源更有意义 MDCC之移动娱乐游戏峰会:手游金玩奖即将揭晓 开源巨人火狐浏览器:9周岁生日快乐! 感受OpenStack Summit香港大会 渣打科营中心:创建以技术为核心的企业文化 抱怨IT公司人才缺乏?留住现有人才方是正途 专访Esri中国区技术总监:打造新一代WebGIS平台 TIOBE 2013年11月编程语言排行榜:C#、Transact-SQL及VB.NET厚积薄发 透过KitKat,Android或与ChromeOS融合? 利用Spring Data Neo4j搭建推荐系统 七丽借百度SiteApp移动化 分发及变现能力获大幅提升 Go语言4岁了 生日快乐 谷歌发布Web延迟基准测试工具 专访JS-Git创始人Tim Caswell:让Git运行于任一平台 一段代码引发的思考 2013年美国开发者薪资调查报告 MDCC之移动娱乐游戏峰会:金玩奖揭晓最火游戏 算法为王:且看Mac Mini如何超越1636节点的Hadoop 鲍尔默成大善人?微软正式废除员工排名评审制度 工信部软件司副司长陈英为MDCC 2013大会致开场辞 全民移动•重塑世界 2013移动开发者大会盛大开幕 泯灭Web App可用性的七个开发错误 保益互动创始人曹军:听到的世界更精彩,盲人应用背后的故事 Gumi公司CEO国光宏尚: 大公开!日本手游市场攻克方法! Great Hill Partners高管Chuck Goldman & 南京创毅CEO William Wei:超越黑莓——下一代企业移动 高通业务拓展副总裁沈劲:智能手机2.0——以体验为中心 百度副总裁李明远:百度轻应用——长尾APP的最佳选择 COMBOBOX查找问题? 很菜的,关于窗体的问题 怎么给jbuiler添加oracle驱动程序!!!!! 谁有手写签名和痕迹保存留的例子???能给我一个吗???一定重谢!! 哪有for win的gd库下载?谢谢 我得代码有错误吗!!在线紧急等待 如何用Java访问微软的DDE Server? 在windows xp中怎么建立虚拟服务器呀? 解决问题,马上结贴 xp風格的問題 请问如何让一个表格的边框的宽度和表格内部的线的宽度不一样? 请问wsad和eclipse哪里有下呢? 如何理解下面的程序段 调查:你(单位)愿意花钱买服务端控件吗? 为什么有些网页是繁体字! 我终于知道什么是英雄了! 关于快捷键。 一个丑人的自白(爆笑) 转载 如何实现信息反馈? 怎样使DataGrid固定显示8行??? 一个简单的问题,关于CListCtrl.. C++文件流的怪问题,竟然不能再次打开??? 怎样在win2000 专业版上使用PHP Linux下如何知道有哪些端口未被使用?? 共享上Internet网的另一台机为何一定要配上DNS服务器地址? 来共同研究开发 文件的变量名拼写错误的检查。。。 人生交叉点, 大家进来帮帮忙 在线等待急急!在超链中有的什怎么传不过去? pb还有出路吗? 如何知道有哪些端口未被使用 请教想在页面里调用js文件达到图片轮显效果 如何在动态库中获取调用该动态库的程序的文件名称? 如何获取灰度图中各象素点的灰度值?(在线等待) 请高手帮我解决这个离散余弦变换(DCT)的问题。高分相送。 求助:sql语名查询? 怎么样在输入数据后立即更新表格? 怎么在tablename是一个参数的表中取字段值? 触发器问题?触发器无法通过确认! 请问如何将字符1转化为数字1呢? 怎样在状态栏中显示页面载入进度? WebEasyMail 很好用,不过是asp的,不知道有没有php的收发邮件的程序代码? WebEasyMail 很好用,不过是asp的,不知道有没有php的收发邮件的程序代码? 菜鸟的一问,请帮忙!! 请帮帮忙指一下路 上一个问题还没解决,所以只有找其它的办法。我要实现直接把邮件发到对方的SMTP服务器 类型转换? 现在有个NCNE国家信息化工程师认证,有没有用? 当数据库使用AddNew--Update插入数据时sql server出现进程死锁,请问为什么呢? Oracle8i技术问题 变量传递问题,急! 极坐标在高中数竟中的应用?相对于参数方程来说有神马优点? 用石灰能杀死钉螺吗 水蛭用什么方法可以杀死 改病句 看书时间长了,可以闭上眼睛或向远处眺望,以缓和眼睛疲劳 蚕籽多久可以孵化?新生的蚕籽经过多长时间才可以再次孵化成幼蚕呢?就是说蚕蛾的卵,刚开始是白的,过一天两天就成黑的了,这样黑的卵经过多长时间的酝酿才可以用来孵化幼蚕啊,小时候样 蚂蟥可以杀死吗? 就让我眺望远方迷失方向闭上眼睛试着想想你在身边 这是歌词 我想知道这首歌的歌名!女生唱的 月蚕年蚕孵化时间1.月蚕的蚕卵在多少时间变成小蚕?在过程中需要注意什么?2.年蚕的蚕卵多少时间可以成小蚕?在过程中需要注意什么?3.月蚕的卵我可不可以叫他明年在出小蚕?为什么我爸一 移动彩钢房多少钱37平焊出底座吧1 晚上要让眼睛放松也要眺望远处吗?眺望外面的黑夜?月亮?路灯? 求这个定积分∫(2x+1)/(x^2+1)dx 上限1 下限-1 虽然很简单,可我还是不会,哪位好人人教教我啊,详细点,最好写出步骤 答案好像是π Michael is a very happy boy 改为感叹句 什么是“水蛭三七散”RT.治疗什么的?能治疗肝硬化吗?哪里可以购买呢? 蛾子是什么变的 5mw激光模组能接上250mw激光二极管吗? 脑血栓后遗症吃三七水蛭方 三七2克 水蛭3克 醋20克 是否会导致患者腹泻 这个是什么 变蛾子的吗? 激光二极管,根据卖家提供的一些参数怎么确定该型号激光二极管电流,电压参数HL7851G - 785纳米,50毫瓦,Ø9毫米,A 型引脚,Hitachi 激光二极管,例如这个 为什么大象比老鼠大这么多,每分钟心跳却只有30下,而老鼠却有150下?这个数据不一定完全准确,或者应该这么问,为什么恒温动物个体越小,心率越高?3Q 大象的什么东西最长 什么是激光模组?什么又是激光模块,它和单个的激光管又有什么区别? 黄粉虫能不能消化塑料? What point are you trying to make? 激光二极管和激光模组怎么用?我看老外弄的激光枪酷毙了还可以点火柴.网上说需要激光2极管和模组怎么用?怎么组装?激光二极管和激光模组是一样的吗?说明白点好的加分 我知道有陕西,但怎么会有陕北呀? 在教师前面有一块黑板.的英语是? A boy can swim very well.A boy swims very well .这两句改成过去时怎么改呢? 骑自行车翻越一个坡地,上坡1千米,下坡1千米.如果上坡的速度是25千米/时,那么下坡要保持什么速度才能使全程的平均速度是30千米/时? 现在的陕北等于陕西吗 定积分,求过程 求激光模组驱动电路图我们准备做模组来卖,但是不会做驱动,谁给指导下? 陕西和陕北陕南和陕北那边比较穷 求定积分, Don't miss the great e_____.you can see many old things.给首字母的填空题 You make a good point的意思是“你的说法很对”吗? 求定积分, 我要求个激光驱动电路越详细越好, point was 如题,)the point was made,…… 求定积分,定积分,上限为2,下限为-2,∫I1-xIdx1-x 的绝对值 you can buy many things at great sale翻译 有两袋米,甲袋比乙袋多25%kg.对还是错? 求此定积分, 长时间看书以后,要向远处眺望休息几分钟,这样做为什么可以有效地预防近视眼的发生? 有两袋米,甲袋比乙袋少19kg,如果从乙袋倒入甲袋2kg,这时甲袋的米相当于乙袋的62.5%.两袋米原来各有几kg 巨蟒跟鳄鱼 自然界里哪个厉害巨蟒跟鳄鱼 还有其他的动物 他们谁最厉害呢 以前看过一个视频 蛇把鳄鱼吃了 但是是一只小鳄鱼 如果是大鳄鱼的话结果会是什么样?最好有狮子跟老虎 等等等 这道题不会,请大家帮忙解答谢谢.过程. 猫每分钟心跳约240次大象每分钟心跳次数约是猫的六分之一,约是老鼠的二十五分之二.老鼠每分钟心跳约几次 我房间好多飞蛾啊.怎么办最近我房间好多飞蛾啊.后面发现是门框角落有个洞.里面飞蛾窝,我把洞堵塞住后.飞蛾就会从墙上各种各样的缝隙中飞出来,晚上开灯后就会很多飞蛾在灯边上.太多啦 同学们在长时间看书后,要想远处眺望休息几分钟,这样可以有效地预防近视眼的发生,从光学的角度分析为什么? 大象什么东西最长 大象什么东西最长. 飞蛾弄死蜜蜂飞蛾和蜜蜂关在一起 两只蜜蜂都死了 飞蛾还活着 我想知道是什么情况 我家飞蛾产卵死后一周大约了,可软卵还没孵化都是黑色的卵回第一楼:怎么增加 蚕黑卵何时孵化不得抄袭! 我家就我一个人的房间里有好多好多的飞蛾,为什么房间内会出现许多飞蛾?要怎么办呢? 为什么飞蛾产的卵是黑的 be the point of doing sth.的意思急.5555555555555 怎么弄死飞蛾 飞蛾产下卵之后该怎么办? 有没有make a decision of doing sth.的说法? 晚上房间很多飞蛾怎么办? 德社民党同意正式谈判 协议达成或需4各省区市党委常委班子均已开展批评和自中国铁建回应“天价招待费”:今年下降日本利用钓鱼岛为开火埋伏笔 无视和平统计局:经济稳中有升稳中向好 不确定日本政府将制作领土问题宣传片以谋求国人民币对美元中间价报6.1330 月美无人机阴影下的巴基斯坦城边陲小镇:专家:最高检向人大做反贪报告有很强政10岁杭州男孩被母亲男友砍去右手丢进美国会大厦将启动半世纪最大修缮工程黑白简约揭幕多伦多2014春季时装周美国白宫:政治僵局令就业人数少增12中国研究人员最终获准参加美天文会议沙特拒绝联合国安理会席位 声称其执行快讯:杭州德胜一出租房3人相约自杀 首届丝绸之路商旅文化博览会在古城西安尼日利亚军方打死37名武装分子美刊分析中国出境游客因何更爱自助游日政府将制作领土问题宣传片以谋求国际英报报道 高官联袂访华终结中英冰冻期H&M旧衣回收探索纺织品循环利用PMI显示经济企稳回升明显 小微企业美国军人反对对叙动武:美国不应强行当立项前建设 单位领导 要参加培训南城一餐厅爆炸 老板夫妇受伤德庆农村垃圾处理建成“一镇一站”工商管理最热门 网络上课是主流太阳能热水器配件曝铅超标星斗市民好样的!唯一卫浴怎么了?计生后进镇区被“约谈”盗用身份证入职酒吧 复制银行卡窃财路面突现大坑 “咬”伤过路货车不能任职于国际航线船舶禅城首次将工伤预防费用于职业健康检查广州4年将增 227公里高速公路中方特别代表上周突访朝鲜天津回应公开水域冲突:以大局为重 暂内蒙古最大的城市棚户区——包头北梁龙岗出租屋综管员队伍管理闯新路园区员工 可享“亲子乐”
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘