Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как изменить всплывающее меню в таскбаре


AlexR ©   (2004-07-22 02:15:00) 

Каким образом можно изменить всплывающее меню при нажатии правой кнопкой на  панель программы в ТаскБаре?


AlexR   (2004-07-22 17:56:00) [1]


> Almaz ©   (22.07.04 04:36)


Большое спасибо! Очень мне помог!


Almaz   (2004-07-22 04:36:00) [2]

Надо получить ссылку на системное меню окна приложения и изменить полученное меню. Например так:

 
const
 idMyMenuItem = 1234;
...
MenuHandle := GetSystemMenu(Application.Handle, False);
 InsertMenu(MenuHandle, Cardinal(-1), MF_BYPOSITION or MF_SEPARATOR, 0, nil);
 InsertMenu(MenuHandle, Cardinal(-1), MF_BYPOSITION or MF_STRING, idMyMenuItem, 'Мой пункт');


Обрабатывать события выбора этого пункта необходимо в Application.OnMessage:

procedure TForm1.ApplicationOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
 if (Msg.message = WM_SYSCOMMAND) and (LoWord(Msg.wParam) = idMyMenuItem) then
 begin
   ShowMessage('Выбран дополнительный пункт');
   Handled := True;
 end;
end;


Удачи.


Наверх

Титульная страница Поиск, карта сайта Написать письмо