Es funktioniert jetzt soweit.
Nur noch ein kleines Problem: Wenn die Maus über das „Senden an“ Menü geführt wird, klappt dieses mit allen Einträgen auf. Wenn der Benutzer allerdings mit der Tastatur den Menüeintrag ansteuert, enthält es wieder den Eintrag „Senden an“. Der Grund dafür ist, dass in der „WndProc“ folgendes steht:
Delphi-Quellcode:
WM_MENUSELECT:
begin
// Prüfen, ob das Owner Draw Shell Popup Menü (mPopupMenu2) gezeichnet werden kann
iMenuPos := Integer(MenuItemFromPoint(
Handle,HMENU
Message.LParam),TPoint(Mouse.CursorPos)));
if GetSubMenu(HMENU(
Message.LParam),iMenuPos) > 0
then
CanDraw := iMenuPos
in [(iHandlerIndex)..(iHandlerIndex + iHandlerCount)];
ValidCmdArea := CanDraw;
inherited WndProc(
Message);
end;
Meine Frage: Wie kann ich den Index des ausgewählten Menüeintrags ermitteln ohne mit der Maus darüber zufahren?
Hinweis:
Es handelt sich um ein reines
API Menü.