定制Delphi应用程序的系统菜单
下面是具体的实现方法。例如,我们要将[新建]和[保存]两选项加入到系统菜单中。先将一PopupMenu组件加入表单,双击此组件进入PopupMenu设计器,设置[新建]和[保存]菜单项,后单击表单空白处,再选中Objector Inspector的Event选项卡,双击OnCreate事件,进入单元窗口,编写如下代码:
Procedure Tform1,FormCreate(Sender:TObject);
Begin
With PopupMenul do
For I:=1 do
AppendMenu(getsystemmenu(self,handle,false),mf-popup,items[I],handle,pchar(items[I],caption));
在变量中添加:Var I:Integer;
编译运行后就会看到系统菜单中多了[新建]和[保存]两项。
下面我们来完成系统菜单项的响应。在Tform1的类定义中的Public部分插入如下代码:
Procedure WMSysCommand(var Msg:Tmessage);
message WM-SysCommand;
其中WMSysCommand为用户定义的响应函数。
Procedure WMSysCommand(var Msg:Tmessage);
Var
Item:Tmenuitem;
Begin
Inherited;
Item:=popupmenu1.Finditem(msg.wparam,fkcommand);
If not(item=nil) then
Item.click;
End
这样,系统菜单项就可以调用原有菜单项的click函数。