BitBlt will ein
Handle zu einem
DC haben - somit musst du ihm dies auch übergeben. Die Klassen TBitmap und deren Instanzen der
VCL sind der
WinAPI völligst unbekannt. Diese kapseln aber die
WinAPI Funktionen in Objekten und haben somit auch ein solches
Handle. Du musst anstatt bg daher bg.Canvas.Handle angeben in dem BitBlt.
Und mit deinem Code wirst du nicht glücklich sein, da man durch einfaches herüberziehen eines Fensters die PaintBox wieder löschen kann. Du musst den Inhalt der PaintBox in deren OnPaint Ereignis zeichnen und nicht woanders.