Я не мог понять, как это сделать напрямую (например, с помощью BitBlt и друзей), но объект списка изображений сделает это за вас:
HBITMAP hBitmapImage = ...; // cookie monster
HBITMAP hBitmapMask = ...; // all black
HIMAGELIST hImageList = ImageList_Create(width, height, ILC_COLOR32 | ILC_MASK, 1, 0);
ImageList_Add(hImageList, hBitmapImage, hBitmapMask);
ImageList_Draw(hImageList, 0, hDC, x, y, ILD_SELECTED);
Результат (оригинал слева, выбран справа):