Добавить свой пункт в системное меню

const
  MyEvent = WM_USER + 19;

procedure TTestAreaMain.Button1Click(Sender: TObject);
begin
  // Перенаправим обрабочик событий Application к нам,
  //  чтобы реагировать на нажатие пункта меню.
  Application.OnMessage := MyMessageHandler;

  // Добавим разделитель
  AppendMenu(GetSystemMenu(Handle, False),
             MF_SEPARATOR, 0, '');

  // Добавляем свой пункт меню, с событием MyEvent;
  AppendMenu(GetSystemMenu(Handle, False),
             MF_BYPOSITION, MyEvent, 'Турлюмк');
end;

procedure TTestAreaMain.MyMessageHandler(var Msg: TMsg; var Handled: Boolean);
begin
 if (Msg.Message = WM_SYSCOMMAND) and // Если это сообщение от системного меню
     (Msg.wParam = MyEvent) then      //  и это наш пункт, 
  begin                               //  то турлюмк. 
    MessageBeep(MB_OK);
    Handled := True;
  end;
end;

 

Метки: