One thing that I would consider if I were you would be to use the DirectX 7 engine.

This can interface with Visual Basic and is designed to control sound, graphics and everything else directly from the required resources and does it a lot better than any Visual Basic routines such as BitBlt.

I believe it also supports things like double buffering which I am sure you are aware of making a graphical game