Einzelnen Beitrag anzeigen

Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: API fürs Zeichnen von Fenster-Button (BorderIcons) im Win Vista/7 Stil gesucht

  Alt 14. Mai 2011, 18:13
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;
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat