如何用自己的菜单替换程序的系统菜单,就象winamp3 一样,在任务栏上是自己的菜单?(50分)

  • 主题发起人 主题发起人 slcw
  • 开始时间 开始时间
S

slcw

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用自己的菜单替换程序的系统菜单,就象winamp3 一样,在任务栏上是自己的菜单?
 
H:=getsystemenu(Application.Handle);
DeleteMenu(,InsertMenu and so no!
 
我用
DestroyMenu(getsystemmenu(application.handle,false));
SetMenu(getsystemmenu(application.handle,false),MainPopupMenu.Handle);
可以用自己的MainPopupMenu,替换掉系统菜单,但是不能接收任何的消息,请问怎么办?如何使这个菜单生效?
 
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:=xy;
end;

procedure TForm1.xy(var Msg: TMsg;
var Handled: Boolean);
begin
if Msg.wParam=100 then
ShowMessage('ok');
end;

procedure TForm1.Button1Click(Sender: TObject);
var H: HWND;
i: integer;
begin
H:=GetSystemMenu(Application.Handle,false);
for i:=1 to 4 do
DeleteMenu(H,0,MF_BYPOSITION);
InsertMenu(H,1,MF_STRING or MF_BYPOSITION,100,'My Menu');
end;
//自己看看好了!
 
我用
DestroyMenu(getsystemmenu(application.handle,false));
SetMenu(getsystemmenu(application.handle,false),MainPopupMenu.Handle);
可以用自己的MainPopupMenu,替换掉系统菜单,但是不能接收任何的消息,请问怎么办?如何使这个菜单生效?
 
已经有讨论过,请搜索一下.
 
没找到啊
 
slcw: 我的怎么替换不了!??
 
后退
顶部