Alles richtig. DrawFrameControl() der
WinAPI beachtet die Pen/Brush Eigenschaften nicht sondern nutzen fest die Farbkonstanten bzw. deren aktuellen Farben anhand des aktuellen Farbschemas. clBtnFace, clBtnShadow, etc.
Warum bastelst du eigentlich mit dem
DC rum? Kannst du doch alles direkt von der
VCL nutzen. SetBkMode(xx, OPAQUE) ist entsprechend Canvas.Brush.Style := bsClear und den
DC erhälst du mit Canvas.Handle. Den Code Abschnitt kannst du dir deutlich vereinfachen...