Как добавить свой пункт в системное меню программы
|
Нижеприведенный пример демонстрирует применение API-функции AppendMenu и последующий перехват WM_SYSCOMMAND именно с этой целью. type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
const SC_MyMenuItem = WM_USER + 1;
procedure TForm1.FormCreate(Sender: TObject); begin AppendMenu(GetSystemMenu(Handle, FALSE), MF_SEPARATOR, 0, ''); AppendMenu(GetSystemMenu(Handle, FALSE), MF_STRING, SC_MyMenuItem, 'My Menu Item'); end;
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand); begin if Msg.CmdType = SC_MyMenuItem then ShowMessage('Got the message') else inherited; end; |