|
我們使用Delphi編制應(yīng)用程序,編譯運(yùn)行后,在主界面的左上角出現(xiàn)一小圖標(biāo),用鼠標(biāo)單擊此圖標(biāo),會(huì)
出現(xiàn)一下拉式菜單,這就是系統(tǒng)菜單。系統(tǒng)菜單包括[還原]、[移動(dòng)]、[大小]、[最小化]、[最大化]和[關(guān)
閉]六項(xiàng)。系統(tǒng)菜單是Delphi自動(dòng)給每個(gè)應(yīng)用程序加上的,不用特意設(shè)計(jì)。但在我們的應(yīng)用程序中,有時(shí)為達(dá)
到一定目的,不希望在主界面上有主菜單存在,這時(shí)就可以在系統(tǒng)菜單上做點(diǎn)文章,將自己的菜單選項(xiàng)加入
到系統(tǒng)菜單中,以實(shí)現(xiàn)主界面的整潔。
下面是具體的實(shí)現(xiàn)方法。例如,我們要將[新建]和[保存]兩選項(xiàng)加入到系統(tǒng)菜單中。先將一PopupMenu組
件加入表單,雙擊此組件進(jìn)入PopupMenu設(shè)計(jì)器,設(shè)置[新建]和[保存]菜單項(xiàng),后單擊表單空白處,再選中
Objector Inspector的Event選項(xiàng)卡,雙擊OnCreate事件,進(jìn)入單元窗口,編寫(xiě)如下代碼:
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;
編譯運(yùn)行后就會(huì)看到系統(tǒng)菜單中多了[新建]和[保存]兩項(xiàng)。
下面我們來(lái)完成系統(tǒng)菜單項(xiàng)的響應(yīng)。在Tform1的類定義中的Public部分插入如下代碼:
Procedure WMSysCommand(var Msg:Tmessage);
message WM-SysCommand;
其中WMSysCommand為用戶定義的響應(yīng)函數(shù)。
Procedure WMSysCommand(var Msg:Tmessage);
Var
Item:Tmenuitem;
Begin
Inherited;
Item:=popupmenu1.Finditem(msg.wparam,fkcommand);
If not(item=nil) then
Item.click;
End
這樣,系統(tǒng)菜單項(xiàng)就可以調(diào)用原有菜單項(xiàng)的click函數(shù)。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!