"chibishmoo" is right, but the process is a little more complicated than was indicated. The most important (and most tedious) part is you have to create a mask. That's where my handy-dandy "AutoSpriteMaskCreator" comes in. There is version 2 which has 2 modes.
Mode one ("Demo Mode") shows how the biblt-ing is accomplishing using some existing graphics. If you study the code (look under "Private Sub ComposeImages()" on the frmMakCreator form) you'll see the Bitblt commands involved. In this same sub I also included some commented lines showing how to use PaintPicture (a VB friendly "wrapper" for Bitblt) to accomplish the same thing.
Mode two ("Quik Production Mode") allows you to create masks for your own graphics and shows you a sample result against a checkerboard background. Use the enclosed "Rose_medium.bmp" to test if you don't have any graphics files prepared.
In preparation to make a mask for a "sprite" (a picture with a transparent background), make sure the background of your picture is a single, uniform color. I usually use Magenta (RGB 255,0,255), but you can use any color that it not found in the picture itself. My program will use the color of the pixel found in the far upper right corner of your picture as the "transparent" color.
Addtional note the mask file created is the same name as the chosen graphics file with "_mask" appended (this string is stored in a config file and is changeable (customizable) via the Edit menu on the main form).
If you have any questions let me know...