平铺贴图背景制作方法
“平铺贴图”是Windos壁纸一种经常使用的形式。只要在Windos桌面设置程序中,选择一个Windos自带的图案,或者选择一个自己制作的位图文件并选定“平铺”选项,系统就会将选择的图案或位图有规则地从左到右、从上到下铺满整个屏幕。其实,通过调用API函数BitBlt,便可轻松自如地为VB应用程序的窗口制作平铺贴图背景。
BitBlt函数的作用是将位图从一个设备描述表拷贝到另一个与之兼容的设备描述表,它的语法是BitBlt% (ByVal hDestDC%, ByVal X%, ByVal Y%, ByVal nWidth%, ByVal nHeight%, ByVal hSrcDC%, ByVal XSrc%, ByVal YSrc%, ByVal dRop&)。其中,参数hDestDC指定目标设备描述表;X和Y指定目标设备描述表中目标矩形左上角的逻辑坐标点;nWidth和nHeight定义被拷贝的矩形图像的宽度和高度;hSrcDC指定目标设备描述表;XSrc和YSrc指定源设备描述表中源矩形左上角的逻辑坐标点;dRop定义拷贝过程中使用的光栅操作。VB中的Form和PictureBox对象,都有各自相应的设备描述表用于存放它们显示的位图,这些设备描述表可以通过hDC属性存取。由此,我们可以出平铺贴图的实现方法,将贴图图案载入一个PictureBox控件的设备描述表,然后,使用BitBlt函数将该设备描述表中的位图重复复制到同一设备描述表中,在复制过程中,通过改变BitBlt函数的X和Y参数控制复制的位置,使位图从左至右从上到下无缝排列,直到设备描述表中的位图尺寸与显示屏幕大小相同为止,,将该位图装入Form中显示,就可使该Form具有平铺贴图背景了。下面让我们使用该方法来完成一个实例。
为电脑初学者的疑难杂症提供最佳解决方案。电脑基础知识学习QQ群81158926 欢迎电脑爱好者加入。
新建一个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 dRop 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.AutoRedra = True
在此选择贴图的图案文件
Picture1.Picture = LoadPicture("tile.bmp")
初始化变量
HeightMax = Screen.Height Screen.TipsPerPixelY
WidthMax = Screen.Width Screen.TipsPerPixelX
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.AutoRedra = False
End Sub
按F5运行,Form1的窗口内就出现了一个平铺贴图背景。
笔记本电脑维修
- 苹果电脑快捷键 苹果电脑快捷键大全表格
- 联想电脑维修 联想电脑维修地点
- 附近笔记本电脑维修 附近修笔记本电脑的地方
- 电脑硬件检测软件 电脑硬件检测软件通城网盘
- 电脑ip地址怎么看 清华同方电脑ip地址怎么看
- 电脑密码 电脑密码怎么去除掉
- 电脑没有声音 电脑没有声音是什么原因
- 电脑亮度怎么调 台式电脑亮度怎么调
- 电脑开机黑屏 电脑开机黑屏恢复按4个键
- 电脑ip地址 电脑ip地址冲突怎么解决
- 电脑无法开机 电脑无法开机一直黑屏
- 电脑维修免费上门附近
- 电脑黑屏怎么办 电脑黑屏怎么办主机还是亮的
- 360电脑管家 360电脑管家和腾讯电脑管家哪个更好
- 手机控制电脑 手机控制电脑的远程软件
- 电脑设置自动关机