Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)aaa
published in(发表于) 2014/7/19 0:10:45
delphi在系统菜单中添加菜单项实例

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);

var

i: integer;

begin

i := getsystemmenu(handle,false);

appendmenu(i,mf_separator,0,nil);

appendmenu(i,mf_string,100,'我的菜单(&E)');


end;

procedure TForm1.sysmenu(var msg: twmmenuselect);

begin

if msg.IDItem = 100 then

showmessage('您选择了自己添加的菜单!')

else

inherited;

end;

根据本实例,读者可以:通过Deletemenu()函数删除指定的菜单条




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759