 <p>What you want to do requires two blits: one to mask out the portions of the destination bitmap (using pixelwise AND), and then a second one to pixelwise OR the colors from the overlay onto the destination.</p> <p>Do do this manually, you need to make a monochrome mask from your overlay bitmap, with white in the transparent parts and black in the opaque parts. AND the mask with the destination, then OR the color data from your original overlay.</p> <p><code>screen AND mask OR overlay</code></p> <p>And if this is for full-screen stuff, you may want to do the composition in an off-screen bitmap to avoid flicker.</p> <p>Peter Ruderman's suggestion to use TransparentBlt is probably a good one, though I've never tried it myself.</p>