Al escribir un programa en lenguaje C, quiero usar BitBlt para cargar la imagen de la máscara y el mapa de bits para hacer transparente el fondo del carácter activo.

Puedes probar la función TransparentBlt.

BOOL TransparentBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int hHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, UINT crTransparent);

crTransparent: el valor RGB en el mapa de bits de origen se trata como un color transparente.

Por ejemplo: el color de fondo de la imagen del personaje es negro, use la función TransparentBlt para oscurecer la imagen y configure el parámetro crTransparent en negro RGB (0, 0, 0) para completar la copia transparente.