War*_* P 26 delphi menu delphi-xe
首先,我要说我在Windows Vista和Windows 7中憎恶这个功能.其次,我想这样做. 这是一个问题,询问如何在WPF中执行我想要的操作.
我想做同样的事情,但在Delphi中,使用VCL库存组件,TMainMenu或Action Manager菜单,或一些可用的第三方组件,甚至Toolbar2000或其他一些库.
Windows Vista/Windows 7资源管理器主菜单的功能:
(*Windows资源管理器热键示例:Microsoft Windows资源管理器中的Ctrl + A即使菜单不可见也会选择所有菜单,Alt + T =调出工具弹出菜单,即使隐藏整个菜单也是如此).

更新:可以在此处下载使用已接受答案的演示.(HiddenMenu.zip)
And*_*and 32
使用TMainMenu与TActionList往常一样.
然后做
procedure TForm1.FormShow(Sender: TObject);
begin
Self.Menu := nil;
end;
Run Code Online (Sandbox Code Playgroud)
(或者只是Menu在设计时删除关联)和
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_MENU) or (Key = VK_F10) then
Menu := MainMenu1;
end;
Run Code Online (Sandbox Code Playgroud)
和
procedure TForm1.WndProc(var Message: TMessage);
begin
inherited;
case Message.Msg of
WM_EXITMENULOOP:
SetMenu(Handle, 0);
end;
end;
Run Code Online (Sandbox Code Playgroud)
不要忘记将表单设置KeyPreview为true.
(请注意,由于快捷方式由快捷方式处理TActionList,即使菜单"已消失",它们也能正常工作.)
| 归档时间: |
|
| 查看次数: |
6293 次 |
| 最近记录: |