Wenn du die Bitmaps nicht veränderst, könntest du doch aus den Outlines der Bitmap ein Array erstellen, dass die begrentenden Punkte enthält, und dann mit CreatePolygonRgn eine Window-Region erstellen.
Dann rufst du SetWindowRgn(DeineRgn) auf, und dein Problem sollte gelöst sein.
Die andere Möglichkeit wäre, die Bitmaps
ZLib-komprimiert zu speichern und zu laden.
BtW: Sind deine Bitmaps monochrom?