自定义系统菜单
procedure SysMenuCommand(var Msg:TWMMENUSELECT);message WM_SYSCOMMAND; procedure TFormMain.SysMenuCommand(var Msg: TWMMenuSelect); begin case Msg.IDItem of 0: begin MessageBox(0,PChar('茶杯'),'操作提示',MB_OK+MB_ICONINFORMATION); end; 1: begin MessageBox(0,PChar('书本'),'操作提示',MB_OK+MB_ICONINFORMATION); end; 2: begin MessageBox(0,PChar('Notice'),'操作提示',MB_OK+MB_ICONINFORMATION); end; 3: begin MessageBox(0,PChar('Next'),'操作提示',MB_OK+MB_ICONINFORMATION); end; end; Inherited; end; procedure TFormMain.FormCreate(Sender: TObject); mybit:=TBitmap.Create; mybit.LoadFromFile('F:\1.bmp'); Self.Brush.Bitmap:=mybit; Self.Invalidate; end; procedure TFormMain.FormShow(Sender: TObject); var hSysMenu:hMENU; i:integer; begin hSysMenu:=GetSystemMenu(Handle,False);//得到系统菜单句柄 //通过位置删除 for i := 0 to 9 do DeleteMenu(hSysMenu, 0, MF_BYPOSITION); //通过命令删除 {DeleteMenu(hSysMenu, SC_TASKLIST, MF_BYCOMMAND); DeleteMenu(hSysMenu, SC_CLOSE, MF_BYCOMMAND); DeleteMenu(hSysMenu, SC_MOVE, MF_BYCOMMAND); DeleteMenu(hSysMenu, SC_MAXIMIZE, MF_BYCOMMAND); DeleteMenu(hSysMenu, SC_MINIMIZE, MF_BYCOMMAND); DeleteMenu(hSysMenu, SC_SIZE, MF_BYCOMMAND); DeleteMenu(hSysMenu, SC_RESTORE, MF_BYCOMMAND); } //添加新命令 AppendMenu(hSysMenu,MF_STRING and MF_BITMAP,0,'茶杯'); AppendMenu(hSysMenu,MF_STRING,1,'书本'); AppendMenu(hSysMenu,MF_STRING,2,'Notice'); AppendMenu(hSysMenu,MF_STRING,3,'Next'); //菜单右对齐 ModifyMenu(Menu.Handle,1,MF_BYPOSITION or MF_HELP,N2.Handle,PChar(N2.Caption)); end;