您的位置:首页 > 编程语言 > Delphi

delphi 添加系统菜单,点击新菜单没有反应的问题

2011-07-21 10:40 495 查看
programPsysmenu;
uses
Forms,
Sysmenuin'\SYSMENU.PAS'{Form1};

{$R*.RES}
begin
Application.CreateForm(TForm1,Form1);
Application.Run;
end.

unitSysmenu;

interface
uses
SysUtils,WinTypes,WinProcs,Messages,Classes,
Graphics,Controls,Forms,Dialogs;
type
TForm1=class(TForm)
procedureFormCreate(Sender:TObject);
private
procedureuser_sysmenu(varmsg:twmmenuselect);
messagewm_syscommand;

public
{Publicdeclarations}
end;
var
Form1:TForm1;
implementation
{$R*.DFM}

procedureTForm1.user_sysmenu(varmsg:TWMMENUSELECT);
begin
ifmsg.iditem=100then
showmessage('响应系统菜单!')
{也可以setwindowpos()来实现处于最前端功能}
else
inherited;{作缺省处理,必须调用这一过程}
end;

procedureTForm1.FormCreate(Sender:TObject);
varhmenu:integer;
begin
hmenu:=getsystemmenu(handle,false);
{获取系统菜单句柄}
appendmenu(hmenu,MF_SEPARATOR,0,nil);
appendmenu(hmenu,MF_STRING,100,'加入系统菜单');
{加入用户菜单}
end;
end.
//出错的主要原因是:缺少一句代码messagewm_syscommand;
//这句代码的主要作用是:Awindowreceivesthismessagewhentheuserchoosesacommondfromthewindowmenu.
//而如果注释了inherited,则所有系统菜单都不能用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐