ID Number: Q71104
1.00
WINDOWS
Summary:
The Windows GDI.DLL has a function call BitBlt, which will move the
source device given by the hSrcDC parameter to the destination device
given by the hDestDC parameter. This article explains in detail the
arguments of the Windows BitBlt function call.
This information applies to Microsoft Visual Basic Programming System
version 1.0 for Windows.
More Information:
To use BitBlt within a Visual Basic application, you must Declare
the BitBlt function in either the Global section or within the
(declaration) section of your code window. Declare the Function as
follows:
Declare Function BitBlt Lib "gdi" (ByVal hDestDC%,
ByVal X%, ByVal Y%,
ByVal nWidth%,
ByVal nHeight%,
ByVal hSrcDC%,
ByVal XSrc%, ByVal YSrc%,
ByVal dwRop&) As Integer
Note: The above Declare statement must be written on just one line.
The following formal parameters are defined as:
Formal Parameter Definition
---------------- ----------
hDestDC Specifies the device context that is to
receive the bitmap.
X,Y Specifies the logical x-coordinate and
y-coordinate of the upper-left corner of the
destination rectangle.
nWidth Specifies the width (in logical units) of the
destination rectangle and the source bitmap.
nHeight Specifies the height (in logical units) of
the destination rectangle and the source
bitmap.
hSrcDC Identifies the device context from which the
bitmap will be copied. It must be
NULL(zero) if the dwRop& parameter specifies
a raster operation that does not include a
source.
XSrc Specifies the logical x-coordinate and the
y-coordinate of the upper-left corner of the
source bitmap.
dwRop Specifies the raster operation to be performed
as defined below.
The following Raster operations are defined using the predefined
constants found in the WINDOWS.H file supplied with the Microsoft
Windows version 3.0 Software Development Kit (SDK). The value within
the "()" is the value to assign to the dwRop& variable.
Code/Value (hex) Description
---------------- -----------
BLACKNESS (42) Turn output black.
DSINVERT(550009) Inverts the destination bitmap.
MERGECOPY(C000CA) Combines the pattern and the source bitmap
using the Boolean AND operation.
MERGEPAINT(BB0226) Combines the inverted source bitmap with the
destination bitmap using the Boolean OR
operator.
NOTSRCCOPY(330008) Copies the inverted source bitmap to the
destination.
NOTSRCERASE(1100A6) Inverts the result of combining the
destination and source bitmap using the
Boolean OR operator.
PATCOPY(F00021) Copies the pattern to the destination bitmap.
PATINVERT(5A0049) Combines the destination bitmap with the
pattern using the Boolean XOR operator.
PATPAINT(FB0A09) Combines the inverted source bitmap with the
pattern using the Boolean OR operator.
Combines the result of this operation with
the destination bitmap using the Boolean OR
operator.
SRCAND(8800C6) Combines pixels of the destination and source
bitmap using the Boolean AND operator.
SRCCOPY(CC0020) Copies the source bitmap to the destination
bitmap.
SRCERASE(4400328) Inverts the destination bitmap and combines
the results with the source bitmap using the
Boolean AND operator.
SRCINVERT(660046) Combines pixels of the destination and source
bitmap using the Boolean XOR operator.
SRCPAINT(EE0086) Combines pixels of the destination and source
bitmap using the Boolean OR operator.
WHITENESS(FF0062) Turns all output white.
Below is an example of how to copy the contents of a picture control
to the contents of another picture control.
Define a form with two picture controls. Display some graphics on
Picture1 by loading from a picture file or pasting from the clipboard
at design time. You can load a picture from a file as follows: from
the Properties bar, select Picture from the Properties list box and
click the arrow at the right of the Settings box, then select the
desired picture file (such as a .BMP or .ICO file supplied with
Microsoft Windows) from the dialog box.
Add the following code to the Form_Click procedure. Run the program
and click the form. The contents of the first picture will be
displayed to the second picture.
Sub Form_Click ()
' Assign information of the destination bitmap. Note that Bitblt
' requires coordinates in pixels.
Const PIXEL = 3
Picture1.ScaleMode = PIXEL
Picture2.ScaleMode = PIXEL
hDestDC% = Picture2.hDC
X% = 0: Y% = 0
nWidth% = Picture2.ScaleWidth
nHeight% = Picture2.ScaleHeight
' Assign information of the source bitmap.
hSrcDC% = Picture1.hDC
XSrc% = 0: YSrc% = 0
' Assign the SRCCOPY constant to the Raster operation.
dwRop& = &HCC0020
Suc% = BitBlt(hDestDC%, X%, Y%, nWidth%, nHeight%,_
hSrcDC%, XSrc%, YSrc%, dwRop&)
End Sub
References:
1. "Programming Windows: the Microsoft Guide to Writing Applications
for Windows 3," by Charles Petzold (published by Microsoft
Press, 1990)
2. "Microsoft Windows 3.0 Software Development Kit: Reference
Volume 1"
3. The WINSDK.HLP file shipped with Microsoft Windows 3.0 Software
Development Kit.
Additional reference words: 1.00 3.00