borderAndreaVB free resources for Visual Basic developersborder

AndreaVB Visual Basic and VB.NET source code resources - Copyright © 1999-2008 Andrea Tincani
:: Create a Form with tiled picture Background

Author  

Ilanio Castro

Language  

VB5, VB6

Operating Systems  

Windows 95, 98 and NT
API Declarations
'To create a form with tiled picture use the code below. In this code the
'picture is loaded in a picture box (invisible) and is copied over the form
'many time as necessary to cover it. So you can use pictures on all formats
'supported by picture box.


Option Explicit

Private Type BITMAP
    bmType As Long
    bmWidth As Long
    bmHeight As Long
    bmWidthBytes As Long
    bmPlanes As Integer
    bmBitsPixel As Integer
    bmBits As Long
End Type

'Each line below (started by "Private" word) have to be pasted as a single line
Private Declare Function BitBlt Lib "gdi32.dll" (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

Private Declare Function CreateCompatibleDC Lib "gdi32.dll" (ByVal hdc As Long) As Long

Private Declare Function DeleteDC Lib "gdi32.dll" (ByVal hdc As Long) As Long

Private Declare Function SelectObject Lib "gdi32.dll" (ByVal hdc As Long, ByVal hObject As Long) As Long

Private Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long

Private Declare Function GetObject Lib "gdi32.dll" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Usage

'Create a Form with a PictureBox (named Picture1)

Private Sub Form_Load()
   
'Hide Picture1 and define its properties
    Picture1.Visible = False
    Picture1.AutoRedraw = False
    Picture1.AutoSize = True
   
'Define form properties to be equivalent
    Form1.AutoRedraw = False
End Sub

Private Sub Form_Paint()
   
'Define necessary variables
    Dim Success As Long
'Result of API calls
    Dim bmp As BITMAP
'BMP copied from Picture1
    Dim srcDC As Long
'Source hDC
    Dim hSrcPrevBmp As Long
'Destination hDC
    Dim srcBmp As Long
    Dim hSrcBmp As Long
    Dim y As Long
    Dim x As Long

   
'Loads picture - it can be any supported format of picture box control
    Picture1.Picture = LoadPicture("c:\windows\winlogo.gif")
    srcBmp = Picture1.Picture
    Success = GetObject(srcBmp, Len(bmp), bmp)
    srcDC = CreateCompatibleDC(Form1.hdc)
    hSrcBmp = SelectObject(srcDC, srcBmp)

   
'Copy source Bitmap over form many times are necessary to cover its area
    For y = 0 To Form1.ScaleHeight Step bmp.bmHeight
        For x = 0 To Form1.ScaleWidth Step bmp.bmWidth
           
'The follow line have to be in a single line
            Success = BitBlt(Form1.hdc, x, y, bmp.bmWidth, bmp.bmHeight, srcDC, 0, 0, &HCC0020)
        Next x
    Next y

   
'Delete used objetcs and DC
    Success = DeleteObject(hSrcBmp)
    Success = DeleteDC(srcDC)
End Sub

:: Navigation

Home

Form Tips

Previous Tip

Next Tip

:: Search this site
Google
:: Related Topics
icon 19-03-2008 Re: Loops pls help by stickleprojects
icon 18-03-2008 VB code generation TSQL scripts for SQL2k by stickleprojects
icon 28-02-2008 Re: How to create a common menu for whole proj? #1 by Bharathi
icon 21-02-2008 Database searching by Muthu
icon 20-02-2008 Printing using with "Printer" object by Muthu
:: Sponsored Links



Partners: Il portale per lui e lei | Download Actual Software | Free Software Download
borderAndreaVB free resources for Visual Basic developersborder

borderAndreaVB Visual Basic and VB.NET source code resources - Copyright © 1999-2008 Andrea Tincaniborder