当前位置:编程学习 > VB >>

如何在窗体中平铺图片?

 

 

  本文介绍怎样用一个图片(例如BMP)平铺在窗口并完全覆盖它。

  我们常常有需要使用一幅小图去覆盖一个窗口或者窗口的一部分。这正是设计那些小图的目的。它们以原来的尺寸作为背景排列在要覆盖的窗口上,这种技术就叫“平铺”。

  VB没有提供平铺图片到窗口的标准功能。要做到这点,我们必须使用WINDOWS API和一些图形技术。

  操作步骤:

  1、建立一个新工程项目,缺省建立窗体FORM1

  2、添加一个新模体

  3、粘贴下面代码到新模体

Option Explicit

Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, _

 ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, _

 ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Public RetValue As Long

Public Sub TileWindow(WindowObject As Object, p As PictureBox)

  Dim j As Integer, i As Integer

  Dim x As Integer

  Dim WhDC As Long

   This object can be any VB standard object with an hWnd property

  WhDC = GetDC(WindowObject.hwnd)

  For j = 0 To WindowObject.Height Step p.ScaleHeight

    For i = 0 To WindowObject.Width Step p.ScaleWidth

      x = BitBlt(WhDC, i, j, p.ScaleWidth, p.ScaleHeight, p.hDC, 0, 0, vbSrcCopy)

    Next

  Next

End Sub

  4、添加一个图片框控件(PICUTRE1),设置其SCALEMODE属性=3-PIXEL,AUTOREDRAW属性=TURE,AUTOSIZE属性=TURE。在PICTURE属性中选择一幅图。

  5、添加以下代码到FORM1的PAINT事件:

Private Sub Form_Paint()

  TileWindow Me, Picture1

End Sub

  6、保存工程项目

  7、运行程序。当显示出窗体后,可以看到图片“平铺”到整个窗体。

  注意:尽管这种方法显示能够在任何支持hWnd属性的控件上平铺图片,但仍必须留意哪些控件支持PAINT方法

 

补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,