Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6308
Последний выпуск: 19.06.2015

Добавляем пункты в системное меню Windows.

Автор: MAD Rodrguez
www.исходники.ru

Вы, наверное, задавались вопросом, почему системное меню постоянно одно и тоже ? Пример показывает, как добавить туда такие пункты как "About" или "Information", или что-нибудь ещё.

Нам понадобится две вещи, первая это Item ID, который может быть любым целым числом. Второе это Описание(Caption) для нашего пункта меню. Нам понадобится также процедура, которая будет принимать сообщения Window для определения нажатия на наш пункт меню.

Unit OhYeah; 

Interface 

Uses 
    SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
    Forms, Dialogs, Menus; 

Type 
   TForm1 = Class (TForm) 
      Procedure FormCreate (Sender : TObject); 
     
   Private {Private declarations} 
   Public  {Public declarations} 
      Procedure WinMsg (Var Msg : TMsg; Var Handled : Boolean); 
      Procedure DoWhatEever; 

End; 

Var 
   Form1 : TForm1; 

Implementation 

{$R *.DFM} 

Const 
     ItemID = 99; // ID номер для пункта меню. Может быть любым 

Procedure Tform1.WinMsg (Var Msg : TMsg; Var Handled : Boolean); 
Begin 
    If Msg.Message = WM_SYSCOMMAND Then 
        If Msg.WParam = ItemID Then DoWhatEver; 

End; 

Procedure TForm1.FormCreate (Sender : TObject); 
Begin 

     Application.OnMessage := WinMsg; 
     AppendMenu (GetSystemMenu (Form1.Handle, False),
                     MF_SEPARATOR, 0, ''); 
     AppendMenu (GetSystemMenu (Form1.Handle, False),
                     MF_BYPOSITION, ItemID, '&My menu'); 
     AppendMenu (GetSystemMenu (Application.Handle, False),
                     MF_SEPARATOR, 0, ''); 
     AppendMenu (GetSystemMenu (Application.Handle, False),
                     MF_BYPOSITION, ItemID,'&My menu minimized'); 

End; 

Procedure TForm1.DoWhatEver; 
Begin 
    Exit;    // Вы можете добавить здесь всё, что угодно 
End; 

End.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
3 мая 2006, 12:08:40
Я могу сказать за Flashget. Там контекстное меню устанавливается в файле конфигурации.
2.
Аноним
Мне нравитсяМне не нравится
18 марта 2006, 02:09:59
А как можно добавить свой пункт в контекстное меню для файла?
Типа щелкаешь правой кнопкой мыши на файл, появляется меню, а там твой пунктик, как делает ВинРар или ВинАмп, например(Play with Winamp, Add to archive, etc.)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог