bitblt Function in VB 2005

  • Thread starter Thread starter fripper
  • Start date Start date
F

fripper

Is there a way to use the windows bitblt function in a VB 2005 app? bitblt
requires device context parameters for the source and destination controls
but those are not used in VB 2005. Is there some way around this? I have a
program that uses a timer ... when it fires I want to copy a small block on
the screen to a particular location.

Thanks
 
Have you checked the System.Drawing namespace ?

Basically .NET is about providing access to OS capabilities as a library of
classes (that do not necessarily model the underlying API). For device
context, try System.Drawing.Graphics...
 
fripper said:
Is there a way to use the windows bitblt function in a VB 2005 app?
bitblt requires device context parameters for the source and destination
controls but those are not used in VB 2005. Is there some way around
this? I have a program that uses a timer ... when it fires I want to copy
a small block on the screen to a particular location.

If you cannot use the 'Graphics' object to blit the bitmap, you can use a
'Graphics' object to get and release a device context handle (methods
'GetHdc', 'ReleaseHdc').
 
Here's a bit of code using bitblt and the Graphics object..should work in
2005 but don't know since I use 2003:

Private Function CopyRect(ByVal Src As Graphics, ByVal RectF As Rectangle)
As Bitmap
'Create Empty BitMap in Memory
Dim srcBmp As New Bitmap(RectF.Width, RectF.Height, Src)
Dim srcMem As Graphics = Graphics.FromImage(srcBmp)
'Get Device contexts for Source and Memory Graphics Objects
Dim hdcSrc As IntPtr = Src.GetHdc
Dim hdcMem As IntPtr = srcMem.GetHdc
'Get The Picture inside the Rectangle
BitBlt(hdcMem, 0, 0, RectF.Width, RectF.Height, hdcSrc, RectF.X,
RectF.Y, 13369376)
'Return Clone of the BitMap
Dim rb As Bitmap = CType(srcBmp.Clone(), Bitmap)
'Clean Up
Src.ReleaseHdc(hdcSrc)
srcMem.ReleaseHdc(hdcMem)
srcMem.Dispose()
srcMem.Dispose()
Return rb
End Function
 
Back
Top