Home All Groups Group Topic Archive Search About

bitblt Function in VB 2005

Author
21 Feb 2006 3:04 PM
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

Author
21 Feb 2006 3:37 PM
Patrice
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...

--
Patrice

Show quoteHide quote
"fripper" <yo***@indiana.edu> a écrit dans le message de
news:ObGHWgvNGHA.1180@TK2MSFTNGP09.phx.gbl...
> 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
>
>
>
Author
21 Feb 2006 5:16 PM
Herfried K. Wagner [MVP]
"fripper" <yo***@indiana.edu> schrieb:
> 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').

--
M S   Herfried K. Wagner
M V P  <URL:http://dotnet.mvps.org/>
V B   <URL:http://classicvb.org/petition/>
Author
22 Feb 2006 12:58 AM
Dennis
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
--
Dennis in Houston


Show quoteHide quote
"fripper" wrote:

> 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
>
>
>
>