Du skal have et bitmap med en DC (Device Context). Det kunne være en picturebox eller en form (der har en property der hedder HasDC), eller andre kontroller med et billede. Det kan også være et bitmap du selv har lavet, eller en fil, men så skal der flere API-kald til at finde DC'en.
For at gøre det simpelt: Lav en form1 med en picturebox picture1 og en knap Command1.
Indsæt et billede i pictureboxen.
I et modul indsættes funktionen:
Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (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
Alle parametre findes ved funktionskaldet undtagen dwRop, der er en konstant med flere værdier. (for langt til her). Vi bruger konstanten vbSrcCopy der blot kopierer almindeligt.
i knappen:
Private Sub Command1_Click()
Dim hDestDC, x, y, nWidth, nHeight, hSrcDC, xSrc, ySrc, dwRop, RetVal
hDestDC = Form1.hDC 'handle til formen (som vi tegner på)
x = 20 'startpkt på formen (i pixels)
y = 20 '-------||-------------
nWidth = Form1.Picture1.Width / 15 'bredde fra kilden (/15 = twips->pixels)
nHeight = Form1.Picture1.Height / 15 'højde --------||---------
hSrcDC = Form1.Picture1.hDC 'handle til picbox (som vi tager fra)
xSrc = 0 'startpkt på kilden
ySrc = 0 '----------------||---------------
dwRop = vbSrcCopy 'konstant
RetVal = BitBlt(hDestDC, x, y, nWidth, nHeight, hSrcDC, xSrc, ySrc, dwRop)
End Sub
Dette tegner billedet fra pictureboxen på formen i 20,20.
Det er naturligvis ikke nødvendigt at bruge BitBlt til dette, men det er kun et
eksempel. Du kan tegne på alle DeviceContexts (f.eks. direkte på skærmen)
Du kan se mere om funktionen her:
http://www.allapi.net/apilist/apifunction.php?apifunction=BitBlt/tjacob