I’m writing a program using the standard Win32 API. When a user selects a picture in my program, I want to draw the bitmap so that it appears highlighted/selected. Using the standard Windows metaphor, this means drawing a version of the bitmap that’s been dithered with the system highlight color (I’m not sure that “dithered” is the technically correct term, but see my example below). I’ve tried several ways to accomplish this with BitBlt and similar functions, but I can’t seem to figure out the exact steps that I need. If there’s a standard Win32 function that handles this, I haven’t been able to find it. Does anyone know how I can accomplish this?
An unselected image should look like this:

A selected image should look like this:

I could not figure out how to do this directly (e.g. with BitBlt and friends), but the image list object will do it for you:
Result (original on left, selected on right):