All articles(网络文学目录) All Pictures(图片目录) All Softwares(软件目录)

 
delphi在系统菜单中添加菜单项实例

Writer: aaa Article type: Programming skills(编程技巧) Time: 2014/7/19 0:10:45 Browse times: 250 Comment times: 0

delphi在系统菜单中添加菜单项实例


Head photo

Go homepage
Upload pictures
Write articles

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()函数删除指定的菜单条





There are 0 records,
Comment:
Must be registered users to comment(必须是注册用户才能发表评论)

Disclaimer Privacy Policy About us Site Map
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.