Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#18

AW: [D2009] MainMenu Hotkey/Unterstriche immer Sichtbar

  Alt 27. Aug 2018, 19:19
Das mit der WncProc müsste tun, aber du musst den Code natürlich deinen Bedürfnissen anpassen. Das SystemParametersInfo kannst du dir komplett sparen, weil du die Anzeige ja (vorerst) erzwingen willst. Du müsstest den Code so gestalten, dass pauschal ODS_NOACCEL aus dem Set pDIS^.itemState entfernt wird. Vielleicht so:
Delphi-Quellcode:
procedure TYourForm.WndProc(var Message: TMessage);
const
  ODS_NOACCEL = $100;
var
  pDIS: PDrawItemStruct;
begin
  if (Message.Msg = WM_DRAWITEM) then begin
    pDIS := PDrawItemStruct(Message.LParam);
    if (pDIS^.CtlType = ODT_MENU) then begin
        pDIS^.itemState := pDIS^.itemState and not ODS_NOACCEL;
    end;
  end;
  inherited;
end;
ODT_MENU steht allerdings für Owner-drawn menu. Insofern kann es sein, dass das genau wie der Weg via AdvancedDrawItem nur funktioniert, wenn OwnerDraw:= True ist. Weiß nicht, was MS als Owner-drawn bezeichnet, und ob das von dem abweicht, was die VCL als Owner-drawn sieht.

Grüße
Dalai
  Mit Zitat antworten Zitat