CreateBitmap, Size, and Combine example for Access 2.0

This example creates a bitmap for Lead2 (same size and BPS as Lead1) and fills it with green. It resizes the Lead1 bitmap, then uses a loop to do multiple combines with the Lead2 bitmap. It then copies the Lead2 bitmap to Lead1 and redisplays Lead1.

DoCmd Hourglass True

' Create the Lead2 bitmap. (The control must already be on the form).
MyWidth = Me![LEAD1].Object.BitmapWidth
MyHeight = Me![LEAD1].Object.BitmapHeight
MyBPS = Me![LEAD1].Object.BitmapBits
Me![LEAD2].Object.CreateBitmap MyWidth, MyHeight, MyBPS
Me![LEAD2].Object.Fill RGB(0, 255, 0) ' fill with green

' Resize the Lead1 bitmap
ImageWidth = CInt(MyWidth * 0.3)
ImageHeight = CInt(MyHeight * 0.3)
Me![LEAD1].Object.Size ImageWidth, ImageHeight, RESIZE_RESAMPLE

' Initialize the variables used for multiple combines.
TestWidth = MyWidth ' Used for horizontal positioning
TestHeight = MyHeight ' Used for vertical positioning

VFactor = Int(MyHeight / ImageHeight) + 1 ' Number spaces between images
VSpacing = CInt((MyHeight Mod ImageHeight) / VFactor) ' Pixels between images

HFactor = Int(MyWidth / ImageWidth) + 1 ' Number spaces between images
HSpacing = CInt((MyWidth Mod ImageWidth) / HFactor) ' Pixels between images

DstT = VSpacing ' Top coordinate of the destination rectangle
SrcL = 0 ' Left coordinate of the source rectangle
SrcT = 0 ' Top coordinate of the source rectangle
SrcObj = Me![LEAD1].Object.Bitmap
DstW = ImageWidth  ' Width of the destination rectangle
DstH = ImageHeight ' Height of the destination rectangle
MyOp = CB_OP_ADD + CB_DST_0 ' Operation flags used when combining images

' Do the loop that does the multiple combines
While TestHeight > ImageHeight ' Vertical loop
    DstT = MyHeight - TestHeight + VSpacing
    TestHeight = TestHeight - ImageHeight - VSpacing
    While TestWidth > ImageWidth 'Horizontal loop
        DstL = MyWidth - TestWidth + HSpacing
        TestWidth = TestWidth - ImageWidth - HSpacing
        Me![LEAD2].Object.Combine DstL, DstT, DstW, DstH, SrcObj, SrcL, SrcT, MyOp
    Wend
    TestWidth = MyWidth
Wend

' Copy the Lead2 bitmap to Lead1
Me![LEAD1].Object.Bitmap = Me![LEAD2].Object.Bitmap

'Get the pixel dimensions of the LEAD control's client area.
ViewWidth  = Me![LEAD1].Object.ScaleWidth
ViewHeight = Me![LEAD1].Object.ScaleHeight

'Set the image display size to match the LEAD control
Me![LEAD1].Object.SetDstRect 0, 0, ViewWidth, ViewHeight
Me![LEAD1].Object.SetDstClipRect 0, 0, ViewWidth, ViewHeight
Me![LEAD1].Object.ForceRepaint ' Repaint the image
DoCmd Hourglass False