首先,让我说我在Windows Vista和Windows 7中废除此功能。第二,我想这样做。
Here是一个问题,如何做我想在这里,在WPF。
我想做同样的事情,但在Delphi,使用VCL股票组件,TMainMenu或Action Manager菜单,或一些可用的第三方组件,甚至Toolbar2000或一些其他库。
Windows Vista / Windows 7 explorer主菜单的功能:
>它在应用程序启动时不可见
>按下并释放Alt使其可见
>再次按下和释放Alt使它再次不可见
>可重复。
>热键在菜单项上工作,即使菜单不可见*
(* Windows资源管理器热键示例:Microsoft Windows资源管理器中的Ctrl A选择所有即使菜单不可见,Alt T =启动工具弹出菜单,即使整个菜单被隐藏)。
更新:演示使用接受的答案可以下载here.(HiddenMenu.zip)
解决方法
像往常一样使用带有TActionList的TMainMenu。
然后做
procedure TForm1.FormShow(Sender: TObject); begin Self.Menu := nil; end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_MENU) or (Key = VK_F10) then Menu := MainMenu1; end;
和
procedure TForm1.WndProc(var Message: TMessage); begin inherited; case Message.Msg of WM_EXITMENULOOP: SetMenu(Handle,0); end; end;
不要忘记将窗体的KeyPreview设置为true。
(请注意,由于快捷方式由TActionList处理,即使菜单已过去,它们也会工作。)