自定义系统菜单

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;

 

posted @ 2012-06-21 09:12  ftwsnow  阅读(300)  评论(0编辑  收藏  举报