Dein Problem liegt darin, das CopyRect BitBlt() intern nutzt und dieses die transparenten Bereiche nicht beachtet. Daher liegt das Problem nicht bei dir sondern eher an der Funktion. Ich würde dir als Abhilfe dazu zu 2 Möglichkeiten raten:
1. sorge dafür, das die Transparente Farbe bei beiden Bitmaps gleich sind, dann sollte CopyRect() das Bild nicht-transparent kopieren - was in diesem Falle ok ist, da schliesslich das Ziel Bitmap die gleiche Transparentfarbe hat und somit die gleichen Bereich transparent darstellt.
2. Nutze TransBlt(), aber das hat mehr Probleme falls TransBlt() nicht verfügbar ist und es hat Einschränkungen auf manchen Windows Versionen, daher musst du abwägen.
Es gibt noch die Möglichkeit mit Masken zu arbeiten, aber ich glaube das macht dies auch noch komplizierter.
_________________
49 63 68 68 61 62 65 6B 65 69 6E 65 41 68 6E 75 6E 67 21