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

平铺贴图背景 -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的窗口内就出现了一个平铺贴图背景。
Oracle向开发者承诺 称尽快修复Java安全问题 日本:开发者与投资人都不容忽视的移动市场 Unity 3D引擎:十大最火的插件推荐 重塑品牌 RIM更名黑莓 发布BlackBerry 10移动操作系统及新手机 NoSQL依赖的不只是大数据 还有应用程序架构的改变 新一代Apple TV增强内在组件 外观不变 加速Web开发的7款知名HTML5框架 Firefox OS开发者日来袭 5小时15款Web应用出炉! 微软发布Office 365家庭高级版 订阅费499元/年 鲍尔默对Office信心满满,十亿用户量触手可及 【多图】梦幻现实 IBM的未来超级计算机水世界 一名骨灰级工程师的OpenStack部署总结引发的讨论 解读DuckDuckGo搜索 百万点击也敢叫板Google 开发者成功学:扔掉你那些很sexy的想法 VMware严控ESXi API 引发用户和ISV被绑架担忧 布局O2O Facebook推出实物礼品卡 iSuppli:微软Surface RT实际销量远低于出货量 业界前三甲:App Store两个刷榜者,站了出来 极客无极限 一行HTML5代码引发的创意大爆炸 将服务器“弃”之荒野? 微软玩转露天数据中心 Dropbox:我们现在关注“内容” 而不仅仅是文件存储 访Teradata Aster Mayank Bawa:抛弃无效数据,让分析走向大众化 谷歌Chrome或新增通知中心 与Google Now整合 传言称HBO节目将登陆苹果Apple TV? Crashlytics被收购,应用崩溃报告服务要火了? 微软公布WP7.8完整功能 诺基亚率先升级 BlackBerry 10或许不仅仅是一剂强心针 一周消息树:专访蒋彪:JavaEE是企业级开发首选 移动周报:从封闭到开放,iOS生态系统要变天? 游戏平台上:Win7已跌破70% Ubuntu突破1% 不再那么传奇 扎克伯格时代或结束 如何是使用describe来获取datawindow中的带区参数? 谁有早期的TeeChart5.ocx,文件大小为2,576,384,发行日期在2001-06-17号以前的,我这里有个crack软件,但是新下载的不行,所以重金寻求!!! 请问C语言中有字符串查找函数吗? 请问如何动态的改变应用程序的图标,一定给分 Query主从表编辑问题,从不丢失! 急急急!!!! 高分求禁止IE的自动谈出的广告,有个软见也行,或者告诉实现方法。请告诉下载的网址。 打印一些清单在delphi中用哪些控件比较好? 如何打印到文件 如何得到WINDOWS的拼音字库 如何在BCB中进行SDK编程? 一个简单关于对话框的问题------->> 用asp将图片插入数据库,到底错在哪?苦恼啊!以前这个也通过了(win2000server+Sql7.0)但...(高分!!!!) 为什么我在Access2000的mdb中只能最多得到一条记录? 男人25岁就大吗? 关于 C 类IP的屏蔽 配置为COM+组件后,CoCreateInstance 失败! 关于C 类 IP的屏蔽 有谁知道本.拉登的QQ,俺找他有事?重奖`~~~~~~~~~~~~~~~~~~~! 有没有人告诉我,HTTP头跟正文中间夹的什么? 请问asp和php能访问webservice吗??? 如何一打开NOTE客户端就执行我的数据库(不能设书签)? true dbgrid控件怎么使一个网格又下拉的列表弹出来 关于计数器的代码 那里有含有K线图的图表控件和像OFFICE的工具栏控件下载? 十万火急!如何在Dialog上显示Menu??(我只能给到27分了) 十万火急!如何在Dialog上显示Menu??(我只能给到27分了)十万火急! 问一下,笔记本上的软驱通用吗? maskedit的问题? delphi中报表的问题 关于常用的几种压缩编码? tomcat启动出错,请问什么原因? 一个小问题。回答就给分? 在JSP页面中,能否嵌入ActiveX控件 增加控件的成员变量对程序有什么影响?会使EXE变大吗? shr 是什么意思? 我想用delphi删除一文件夹下面的全部文件,我可以删除一条记录,但无法自动删除全部,数据,我该如何做??? 77分征收四个Delphi中buttons的bmp图标--顶张、下张、上张、末张! 有谁用C++Builder做过corba SQL Server编程求解!!!!! 请问如何测试C#代码的运行瓶颈以便进行优化 80端口是干什么用的 我快要疯了!有关最简单的mdb数据库连接也出问题 win2000 sever 的问题(高手请进) 请问什么地方有BCB的GIF插件下载?具体地址 谁帮助编写一个VCD(DAT)转MPEG格式的程序! 请问上面的V S.net (4cd)里边包括些什么东东?有Vc和msdn吗? oracle中可以保存多个blob字段吗??? 一个大大的问题。。。 在DOS批命令中,对于交互命令如何自动实现输入Y或N以及按任意键继续? 如何调用DivX的DLL进行MPEG4的编码! 有没有那位使用MSF? 马铃薯、甘薯不也有果实啊为什么说它不是果实? 有98名同学,小汽车可坐5人,面包车可坐9人,可以怎样派车?你能写出几种方案? 一个玻璃鱼缸的形状是正方体,棱长为5分米,制作这个鱼缸至少需要玻璃多少平方分米? 26.如图,有一个附有进水管和出水管的容器,每单位时间内进水、出水的量是一定的.设从某时刻开始的4分钟内只进水,不出水,在随后的8分钟内既进水又出水,得到时间(分)与容器内水量(升 有98名同学,小汽车可坐5人,面包车可坐9人,可以怎么派车?你能写出几种方案? 做一个正方体玻璃鱼缸,棱长4分米,制作这个鱼缸至少需要用多少平方分米的玻璃. 一个长方体的棱长之和是80厘米,长8厘米,宽7厘米,表面积是多少,体积是多少 52个人外出游玩,共租了11辆车,正好坐满.轿车坐4人 面包车坐6人 甲乙丙丁共修路1200M,甲修其余3对的1/2,乙修其余的1/3,丙修其余的1/4,丁修几M要算式哦 一个长方体,长8厘米,宽2厘米,它的总棱长、表面积、体积是多少? 有一个长方体的棱长和是76厘米,长是8厘米,高是5厘米,这个长方体的表面积是(),体积是() 甲乙丙丁和修路,甲修的是另三人的1/3,乙修的是另三人的1/4,丙修的是另三人的1/5,丁修69米,路全长多少 有150人去春游,可以租两种车:大客车限乘45人,每辆900元,小客车限乘30人,每辆700元,应该怎样租车合算 一个长方体的棱长之和76厘米,长方体长8厘米,宽6厘米,高是( )厘米,长方体的表面积是( )平方厘米,体积是( )立方厘米 甲乙丙丁修一条公路,甲修的占其他三队修的2/13,乙修的占其它三队修4/11,丁修了60米甲乙丙丁各修几米甲乙丙丁修一条公路,甲修的占其他三队修的2/13,乙修的占其它三队修4/11,丙队修的占其他 四年级282名师生去春游,每辆大客车限坐38人,每辆小客车限坐18人.怎样租车划算? 甲、乙两桶纯净水,甲桶有28kg水,若甲桶喝掉了四分之一,乙桶喝掉了五分之二后,剩下的水一样重.乙桶原有水多少千克?(带算式) 洋葱、土豆、地瓜,这几种植物的食用部分,分别是植物的什么部分? 把3个完全一样的正方体平成一个长方体,这个长方体的表面积是350cm2,其中每个正方体的表面积是多少 地瓜长什么样子地瓜女是什么样子 有甲乙两瓶水,甲装水1kg,如果从乙倒入三分之一给甲,两瓶一样多,乙原有水多少kg?说得不错能不能用文字叙述,那样我会给你加分! (9)阅读信息,答题:※红旗小学有155人去秋游 ※大客车可以坐40人,每辆车租金1000元 ※(9)阅读信息,答题:※红旗小学有155人去秋游※大客车可以坐40人,每辆车租金1000元※小客车可以坐25 全世界最大的番薯都长在哪里 甲乙两桶水,甲桶用去四分之一,乙桶用去三分之一后,甲乙两桶剩下的比是3:2,已知原来甲桶比乙桶多15kg,原来甲桶有水()kg 把两个棱长5cm的正方体黏合成一个长方体这个长方体的表面积是()cm²体积是()cm³ 一个长方体的表面积是236平方厘米,它的长是8厘米,宽是6厘米,这个长方体的高是多少厘米? 在100位旅游者中,有75人懂法语,有83人懂英语,另有10人这两种语言都不懂,问又懂法语,又懂英语的人有多 两个棱长是5cm的正方体,粘合成一个长方体,这个长方体的表面积是多少 问有一桶水,连捅重900克,用去一半后还重500克,问这桶水重多少克? 100旅游者中,有75人懂法语,83人懂英语,另有10人这两种语言都不懂,既懂法语又懂英语的旅游者是多少人? 一桶水用同样大小的瓶去装,如果灌满8瓶后,桶内还剩6/7,如果灌满7瓶后,桶内还剩56千克,这通水有多少千克? 一桶水500升,另一桶水300升,如何取出两桶水的一半 在一批旅客中,有3/4的人懂法语,4/5的人懂英语,两种语言都懂的占13/20,另外有10人这两种语言都不懂,这批旅 客有多少人?尽量不要用方程! 把一个长、宽、高分别是5dm,3dm、2dm的长方体截成两个小长方体,这两个小长方体表面积之和最大是()平方分米 一桶水,倒出水的八分之五后,桶内还剩21千克.这个桶原有多少千克水? 一个鱼缸长10dm宽3dm高4dm,一条鱼放入后,水面高度由原来4dm升至4.012dm,请问鱼的体积是多少? 一个长方体,如果它的高减5cm,就成了一个正方体,这时表面积也就减少了120平方厘米,求这个长方体的体积 一桶水重17千克,倒出水的一半,这桶水重9千克,求桶重多少千克? 一桶水连桶共重20kg倒出1/3后,连桶还重14kg,桶重几kg? 一个长方体,高减少5cm,正好成为一个正方体,表面积减少120平方厘米,求原长方体的体积.会的就答. 有8人分别乘两辆小汽车赶往火车站人分别乘两辆小汽车赶往火车站,其中一辆小汽车在距离火车站15千米的地方出了故障,此时离火车停止检票时间还有42分,这时唯一可利用的交通工具只有一 学农基地种花生是白薯的16倍,现在已知道花生比白薯多105棵,问种花生多少棵白薯多少棵? 把一个长方体的高缩短5CM后,就变成一个正方体,表面积比原来减少了120平方厘米原长方体的表面积是多少?不要用一元二次方程 某旅行团共7人,他们同时乘2辆小汽车(每辆车连司机在内共5人)赶往火车站,其中一辆在距离火车站10千米处出现了故障,此时离检票进站还有40分钟,这时唯一可用的只有另一辆小汽车,假设小 一个玻璃鱼缸的形状是正方体棱长3dm制作这个鱼缸时至少需要玻璃多少平方分米(鱼缸的上面没有盖) 一个长方体的长截去5cm后得到一个正方体,表面积减少120平方厘米.求原来长方体的体积是多少? 8人乘速度相同的两辆小汽车同时赶往火车站,每辆车乘4人(不包括司机).其中一辆车在距离火车站10km的地方出现故障,此时距停止检票的时间还有28分钟.这时惟一可利用的交通工具是另一 一个玻璃鱼缸的形状是正方体,棱长3dm.制作这个鱼缸时至少需要玻璃多少分米,鱼缸上面没有盖 115人春游 设计最省钱的方案 大客车限坐40 人 每天租金1000元 小客车限坐25人 每天租金700元 8人分别乘两辆小汽车赶往火车站,其中一辆小汽车在距离火车站10千米的地方出了故障,此时离火车停止检票时间还有28分,这时唯一可以利用的交通工具只有一辆小汽车,连司机在内限乘5人,这 一个玻璃鱼缸的形状是正方形,内侧棱长3dm,水面的高度为2dm,已知倒入鱼缸的水只有12L,那么这两条鱼的体积是多少? 光华小学115人去春游,设计一种最省钱的方案.大客车限坐40名,租金1000元.小客车限坐25名,租金650元 某公司组织一次小组外出活动,8人分别乘两辆 小汽车赶往火车站,其中一辆汽车距离火车站 15km处出了故障.此时离火车停止检票时间还有42min,这时可以利用交通工具只有一辆小汽车,或者就步 一个玻璃鱼缸的形状是正方体,棱长3dm.制作这个鱼缸是至少需要玻璃多少平方米?(鱼缸的上面没有盖.) 甘薯和马铃薯都富含淀粉,但甘薯吃起来比马铃薯甜,为探究其原因,某兴趣小组以甘薯和马铃薯块茎为材料,在不同温度、其他条件相同的情况下处理30min后,测定还原糖含量,结果表明马铃薯不 吃芋头长胖吗?食堂有做那种一片一片的切成山角型的芋头!好像是用糖做的 同学说是先把芋头稍微炸下然后再用糖汁浇上去的 我很喜欢吃芋头 而且感觉超好吃的 就吃了很多 是晚上啊 长方体长宽高分别是10厘米,8厘米,4厘米,沿长切5刀,沿宽切3刀,沿高切2刀,求长方体表面积的和 山芋和马铃薯能否同吃? 全世界最大的番薯长在哪里? 把一个长10厘米,宽8厘米,高4厘米的长方体,切成两个相等的长方体,表面积最多增
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn