系统菜单中添加选项.doc

系统菜单中添加选项.doc

ID:50276909

大小:35.51 KB

页数:4页

时间:2020-03-07

系统菜单中添加选项.doc_第1页
系统菜单中添加选项.doc_第2页
系统菜单中添加选项.doc_第3页
系统菜单中添加选项.doc_第4页
资源描述:

《系统菜单中添加选项.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用Delphi为窗体的系统菜单中添加选项2006-01-3010:14作者:出处:网弧责任编辑:方舟  通常在应用程序中,如果单击标题栏的左侧图标,就会弹出一个窗体的系统菜单,在其中可以完成最小化、最大化和关闭等操作。本实例将演示如何在窗体的系统菜单中添加自己的选项。  在窗体中添加一个TMainMenu组件,其中TMainMenu组件中的选项将要被添加到窗体的系统菜单中。添加组件后的窗体如图1所示。图1添加组件后的窗体  在TMainMenu组件生成的菜单中添加一个File菜单,在这个菜单下面添加一个Exit选项。  在本程序开始运行时就会把TMainMenu组件生成的菜单添加到窗体的系

2、统菜单中,响应代码如下:procedureTForm1.FormCreate(Sender:TObject);var I:Integer;begin AppendMenu(GetSystemMenu(Handle,FALSE),MF_SEPARATOR,0,''); withMainMenu1do begin  forI:=0toItems.Count-1do   AppendMenu(GetSystemMenu(self.Handle,FALSE),mf_Popup,   Items[I].Handle,PAnsiChar(Items[I].Caption)); end;end;  程序

3、首先通过GetSystemMenu(Handle,FALSE)来取得窗体的系统菜单,并且调用AppendMenu函数添加一个MF_SEPARATOR类型的选项,也就是菜单分隔条。然后通过一个循环,调用AppendMenu函数把TMainMenu组件生成的菜单逐个添加到窗体的系统菜单中。  现在,虽然选项已经添加到窗体的系统菜单中,但是选项还不能够响应用户的操作。为了能够正常响应用户的操作,需要拦截WM_SysCommand消息,所以要添加拦截消息的过程——procedureWMSysCommand(varMsg:TWMSysCommand);messageWM_SysCommand,它的响

4、应代码如下:procedureTForm1.WMSysCommand(varMsg:TWMSysCommand);var Item:TMenuItem;begin Item:=MainMenu1.FindItem(Msg.CmdType,fkCommand); ifItem<>nilthen  Item.Click;  inherited;end;  这样,新添加的选项就可以正常工作了。  单击窗体系统菜单File中的Exit选项,就会结束程序的运行。  程序代码如下:unitUnit1;interfaceusesSysUtils,Windows,Messages,Classes,Grap

5、hics,Controls,Forms,Dialogs,Menus,StdCtrls;type TForm1=class(TForm) MainMenu1:TMainMenu; File1:TMenuItem; Exit1:TMenuItem; procedureExit1Click(Sender:TObject); procedureFormCreate(Sender:TObject);private {Privatedeclarations}public procedureWMSysCommand(varMsg:TWMSysCommand);messageWM_SysCommand;e

6、nd;var Form1:TForm1; implementation {$R*.DFM}procedureTForm1.WMSysCommand(varMsg:TWMSysCommand);var Item:TMenuItem;begin Item:=MainMenu1.FindItem(Msg.CmdType,fkCommand); ifItem<>nilthen  Item.Click;  inherited; end;procedureTForm1.Exit1Click(Sender:TObject);begin Close;end;procedureTForm1.FormCrea

7、te(Sender:TObject);var I:Integer;begin AppendMenu(GetSystemMenu(Handle,FALSE),MF_SEPARATOR,0,''); withMainMenu1do begin  forI:=0toItems.Count-1do   AppendMenu(GetSystemMenu(self.Handle,FALSE),mf_Popup,   Items[I]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。