Winamp3 是怎样重载系统菜单的

iriscat 2001-11-29 09:01:26
Winamp3 是怎样重载系统菜单的,它的系统菜单是自己写的
屏蔽了任务栏上的系统菜单,这是怎样做的!!!!
我问过几次了,好像csdn上没人会的呀
msdn上面也没有
...全文
70 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cqwty 2002-01-06
楼上的说法不错,我这儿有一个完整的程序,可以运行的,代码如下!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure wmSysCommand(var msg:TMessage); message WM_SYSCOMMAND;
public
{ Public declarations }
end;
var
Form1: TForm1;
const
ID_ABOUT = WM_USER+1;
ID_HELP = WM_USER+2;
ID_NEWLINE = WM_USER+4;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
SysMenu:THandle;
begin
SysMenu := GetSystemMenu(Handle,False);
InsertMenu(SysMenu,Word(-1),MF_SEPARATOR,ID_NEWLINE,'');
InsertMenu(SysMenu,Word(-1),MF_BYPOSITION,ID_HELP, '帮助');
InsertMenu(SysMenu,Word(-1),MF_BYPOSITION,ID_ABOUT, '关于...');
end;
///下面部分是响应相应的菜单的事件的!
procedure TForm1.wmSysCommand;
begin
case Msg.wParam of
ID_ABOUT : ShowMessage('想知道什么?');
ID_HELP : ShowMessage('不会不懂吧,确实有点难度的!');
end;
inherited;
end;
end.
  • 打赏
  • 举报
回复
taxi 2001-11-29
procedure TForm1.FormCreate(Sender: TObject);
var
hSysMenu: integer;
begin
hSysMenu := GetSystemMenu(Application.Handle, false);
DeleteMenu(hSysMenu, 3, MF_BYPOSITION);
DeleteMenu(hSysMenu, 2, MF_BYPOSITION);
DeleteMenu(hSysMenu, 1, MF_BYPOSITION);
DeleteMenu(hSysMenu, 0, MF_BYPOSITION);
InsertMenu(hSysMenu, 0, MF_BYPOSITION, SC_ABOUT, Pchar('About')); //如何响应该菜单俺不懂
end;
  • 打赏
  • 举报
回复
知足常乐 2001-11-29
~up一下
  • 打赏
  • 举报
回复
Linux2001 2001-11-29
是左下脚的开始菜单屏遮吗
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi

5124

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
帖子事件
创建了帖子
2001-11-29 09:01
社区公告
暂无公告