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

gpjjnstb263356

gpjjnstb263356

2016-02-19 16:31

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的为VB窗口增添平铺贴图背景懂设计的网友们快点来了解吧!
“平铺贴图”是Windows壁纸一种经常使用的形式。只要在Windows桌面设置程序中,选择一个Windows自带的图案,或者选择一个自己制作的位图文件并选定“平铺”选项,系统就会将你选择的图案或位图有规则地从左到右、从上到下铺满整个屏幕。其实,通过调用API函数BitBlt,便可轻松自如地为VB应用程序的窗口制作平铺贴图背景。
  
  BitBlt函数的作用是将位图从一个设备描述表拷贝到另一个与之兼容的设备描述表,它的语法是:BitBlt(ByValhDestDC,ByValX,ByValY,ByValnWidth,ByValnHeight,ByValhSrcDC,ByValXSrc,ByValYSrc,ByValdwRop&)。其中,参数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,在其中加入如下声明语句:
  
  DeclareFunctionBitBltLib"GDI"(ByValhDestDCAsInteger,ByValXAsInteger,ByValYAsInteger,ByValnWidthAsInteger,ByValnHeightAsInteger,ByValhSrcDCAsInteger,ByValXSrcAsInteger,ByValYSrcAsInteger,ByValdwRopAsLong)AsInteger
  
  PublicConstSRCCOPY=&HCC0020
  
  在项目中加入下列代码:
  PrivateSubForm—Load()
   DimhDCPicAsLong
   DimXPosAsInteger
   DimYPosAsInteger
   DimRetAsInteger
   DimHeightMaxAsInteger
   DimWidthMaxAsInteger
   DimWidthPicAsInteger
   DimHeightPicAsInteger
  
  '将位图载入Picture1的设备描述表
   Picture1.ScaleMode=3
   Picture1.Visible=False
   Picture1.AutoSize=True
   Picture1.AutoRedraw=True
  
  '在此选择贴图的图案文件
   Picture1.Picture=LoadPicture("tile.bmp")
  
  '初始化变量
  HeightMax=Screen.HeightScreen.TwipsPerPixelY
  WidthMax=Screen.WidthScreen.TwipsPerPixelX
  WidthPic=Picture1.ScaleWidth
   HeightPic=Picture1.ScaleHeight
  
  '初始化Picture1的设备描述表以接受平铺贴图
   Picture1.AutoSize=False
   Picture1.Height=Screen.Height
   Picture1.Width=Screen.Width
   hDCPic=Picture1.hDC
  
  '水平拷贝位图生成平铺贴图的第一行
   ForXPos=0ToWidthMaxStepWidthPic
   Ret=BitBlt(hDCPic,XPos,0,WidthPic,HeightPic,hDCPic,0,0,SRCCOPY)
   Next
  
  '垂直拷贝已生成的第一行直至生成整个平铺贴图
   ForYPos=HeightPicToHeightMaxStepHeightPic
   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
  
  EndSub
  
   按F5运行,Form1的窗口内就出现了一个平铺贴图背景。->

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
为VB窗口增添平铺贴图背景

WPS如何垂直平铺窗口

电脑入门
WPS如何垂直平铺窗口

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VB调用API制作渐变的窗口背景色

编程语言 网络编程
VB调用API制作渐变的窗口背景色

禁止背景图在网页中平铺

Html CSS布局 Div+CSS XHTML
禁止背景图在网页中平铺

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

手把手教你为本地磁盘增添背景图片

计算机应用技术
手把手教你为本地磁盘增添背景图片

Photoshop滤镜为画面增添浪漫雪花

PS PS教程
Photoshop滤镜为画面增添浪漫雪花

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

如何充分扩充VB功能

如何充分扩充VB功能

jsp实现图形验证码

jsp实现图形验证码
下拉加载更多内容 ↓