首先,我要说的是,我讨厌Windows Vista和Windows 7中的这个功能。其次,我想做它。Here https://stackoverflow.com/questions/1218394/how-can-i-toggle-the-main-menu-visibility-using-the-alt-key-in-wpf是一个询问如何在 WPF 中执行我想要的操作的问题。
我想做同样的事情,但在 Delphi 中,使用 VCL 库存组件、TMainMenu 或 Action Manager 菜单,或一些可用的第三方组件,甚至 Toolbar2000 或其他一些库。
Windows Vista/Windows 7 资源管理器主菜单的功能:
- 应用程序启动时不可见
- 按下并释放 Alt 使其可见
- 再次按下并释放 Alt 使其再次不可见
- 可重复的。
- 即使菜单不可见,热键也适用于菜单项*
(* Windows 资源管理器热键示例:即使菜单不可见,Microsoft Windows 资源管理器中的 Ctrl+A 也会选择全部,Alt+T = 调出工具弹出菜单,即使整个菜单隐藏)。
Update:可以下载使用已接受答案的演示。 (隐藏菜单.zip)
Use a TMainMenu
with a TActionList
照常。
Then do
procedure TForm1.FormShow(Sender: TObject);
begin
Self.Menu := nil;
end;
(或者简单地删除Menu
设计时的关联)和
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_MENU) or (Key = VK_F10) then
Menu := MainMenu1;
end;
and
procedure TForm1.WndProc(var Message: TMessage);
begin
inherited;
case Message.Msg of
WM_EXITMENULOOP:
SetMenu(Handle, 0);
end;
end;
不要忘记设置表单的KeyPreview
to true
.
(请注意,由于快捷方式是由TActionList
,即使菜单“消失”,它们也能工作。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)