Das hier zeichnet einen Buttonhintergrund, aber transparent ist er noch nicht. Vllt findest Du noch den richtigen Klassennamen für OpenThemeData raus. Die Klassen stehen in der Datei AeroStyle.xml, aber genauer habe ich nicht geforscht.
Delphi-Quellcode:
function OpenThemeData(hwnd: HWND; pszClassList: LPCWSTR): THandle;
stdcall;
external '
uxtheme.dll';
function CloseThemeData(hTheme: THandle): HRESULT;
stdcall;
external '
uxtheme.dll';
function DrawThemeBackground(hTheme: THandle; hdc: HDC; iPartId, iStateId:
Integer;
const pRect: TRect;
pClipRect: PRECT): HRESULT;
stdcall;
external '
uxtheme.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
ltd: THandle;
begin
ltd := OpenThemeData(
Handle, PWideChar('
button'));
try
DrawThemeBackground(ltd, Canvas.Handle, 1, 1, Rect(20, 20, 100, 50), 0);
finally
CloseThemeData(ltd);
end;
end;