Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Menu Ownerdraw

  Alt 7. Mär 2019, 10:49
Wenn man sich den Dialog mithilfe des Tools Window Detective anschaut, dann erkennt man beim Aufklappen des Ansichtsbuttons, dass dynamisch zwei Sachen erzeugt werden (unter Windows 10 1809):
Einmal #32768 (Menu) und SysShadow . Letzteres stellt den Schatten am rechten und unteren Rand dar.
Ersteres ist wiederum interessant, weil es das Menü ist, wonach du suchst.

Wenn wir in den Quelltexten der VCL.Styles.Utils suchen, finden wir in Vcl.Styles.Utils.Menus.pas die Anmeldung des StyleHooks für dieses Menü.
https://github.com/RRUZ/vcl-styles-u...tils.Menus.pas

Am Ende der Unit unter initialization befindet sich:
TSysStyleManager.RegisterSysStyleHook('#32768', TSysPopupStyleHook);

In den folgenden Methoden der Hook-Klasse befinden sich wahrscheinlich die Dinge, die du wissen möchtest:
Delphi-Quellcode:
procedure MNSELECTITEM(var Message: TMessage); message MN_SELECTITEM;
procedure WMPRINT(var Message: TMessage); message WM_PRINT;
procedure WndProc(var Message: TMessage); override;
Die Definitionen für die von Microsoft undokumentierten Messages befinden sich als Konstanten ganz oben in der Unit.
  Mit Zitat antworten Zitat