Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Ist Windows Animation Aktiv

  Alt 23. Apr 2019, 13:55
Ich mache es so..

Delphi-Quellcode:
function TSkinEngine.SetMenuAnimation(HWND: DWORD; MenuAnimation: BOOL): Boolean;
begin

  // Bisherige Einstellung ermitteln:
  result := SystemParametersInfo(SPI_GETMENUANIMATION, 0, @FOldSetting, 0);
  if not result then
    // Result := False;
    // Der abfragende Aufruf war nicht erfolgreich
    exit; // Rückgabewert bleibt False

    // Wert ändern und Erfolg prüfen:
  if Bool(FOldSetting) <> MenuAnimation then
    result := SystemParametersInfo(SPI_SETMENUANIMATION, 0, Pointer(Ord(MenuAnimation)),
      SPIF_SENDCHANGE);
end;
SPI_GETMENUANIMATION mit SPI_GETANIMATION ersetzen.. sollte funktionieren. (aber nicht getestet)

Ich habe die Funktion erstellt damit man bei OwnerDraw Menus das korrekte MenuHandle erhält.
Deaktiviert man die Animation vorher nicht dann ist das Handle immer 0 bei dieser abfrage. (seltsamerweise nur unter Windows 10)

hMenuWnd := WindowFromDC(Pdis^.hDC);

gruss

Geändert von EWeiss (23. Apr 2019 um 14:12 Uhr)
  Mit Zitat antworten Zitat