This is everything I know about Bit Blit:

Code:
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
You put all of that in a module. Then:

Code:
YOURIMAGELIST.Listimages( <INDEXNUMBER> ).Draw buffer.hDC, <THE LEFT OF THE INTENDED DRAW POINT> , THE TOP OF THE INTENDED DRAWING POINT, imlTransparent
That's where you specify the source of the image to redraw.

Code:
    Dc = bitblt(game.hDC, 0, 0, 480, 480, buffer.hDC, 0, 0, vbSrcCopy)
And the preceding line tells what box to copy the image to, and what buffer to use. I'd reccomend just making a picture box called game, and one called buffer, setting the one called buffer to true and then running the code. The only problem I have with this method, is that I cannot blit into negative space without a crash. This is why I can't make an overworld map... Different story.

If you have any questions on this method, my IM for AIM is AnseImaster.