Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)aaapublished in(发表于) 2014/7/19 0:10:45 delphi在系统菜单中添加菜单项实例
在系统菜单中添加菜单项菜单是程序开发中经常使用的界面元素,合理利用菜单不但可以提高使用效率,还可以美化界面。下面通过几个应用实例来介绍菜单设计的方法和技术。实例锐明:普通的windows窗口包含系统菜单、主菜单和弹出菜单3 种菜单,主菜单和弹出菜单都可以用Delphi提供的菜单设计器来设计实现,可是系统菜单不能随意改变。那么如何向系统菜单中添加菜单项呢?本例中的主窗口将在系统菜单中增加一个菜单项。运行效果如图1 . 1 所示。技术要点:利用windows提供的API 函数GetSystemMenu。可以得到窗口的系统菜单句柄,该函数原型如下:Function GetSystemMenu(hWnd:HWND;bRevert:BOOL):HMENU;stdcall;图1-1参数说明:.hWnd 所要取得系统菜单句柄的目标窗口句柄。. bRevert 是否修改原始菜单。返回值是一个HMENU型的菜单句柄。通过GetSystemMenu取得句柄后可以使用AppendMenu函数为系统菜单添加一个菜单项,该函数原型如下:function AppendMenu(hMenu:HMENU;uFlags,uIDNewItem:UINT;IpNewItem:PChar):BOOL;stdcall;参数说明:.hMenu:用GetSystemMenu函数取得的菜单句柄。. uFlags,uIDNewItem 菜单惟一标志,弹出菜单标志。. IpNewItem 菜单的类型。实现过程:(l)新建一个标准工程,创建一个新窗体,默认主窗体的Name属性为Form1。(2) 主要程序代码如下:procedure TForm1.FormCreate(Sender: TObject);vari: integer;begini := getsystemmenu(handle,false);appendmenu(i,mf_separator,0,nil);appendmenu(i,mf_string,100,'我的菜单(&E)');
end;procedure TForm1.sysmenu(var msg: twmmenuselect);beginif msg.IDItem = 100 thenshowmessage('您选择了自己添加的菜单!')elseinherited;end;根据本实例,读者可以:通过Deletemenu()函数删除指定的菜单条
赞