![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Системное меню
FnF © (2002-10-19 16:51:00)Следующий код не обрабатывает мой пункт в системном меню:
...
procedure SystemMenu(var Msg: TMessage);message WM_SysCommand;
...
implementation
const IDM_About=$C0;
{$R *.dfm}
procedure TMainForm.SystemMenu(var Msg:TMessage);
begin
if Msg.WParam=IDM_About then ShowMessage("Hello,World!");
inherited;
end;
...
procedure TForm1.FormCreate(Sender: TObject);
var SysMenu:HMenu;
begin
SysMenu:=GetSystemMenu(Application.Handle,False);
InsertMenu(SysMenu,UINT(4),MF_ByPosition,IDM_My,"Мой пункт меню");
...
end;
...
Хотя если поставить вместо Application.Handle просто Handle то появляется пункт в системном меню, которое выходит при нажатии на заголовке окна правой кнопкой. А мне надо чтоб оно выходило в системном меню, которое внизу на таксбаре. И что кстати за параметр bRevert:boolean?
Вообще в Delphi такая вот фигня: У него 2 системных меню: таскбар и заголовок. Приходится их модифицировать отдельно. Не то что в VC.
TTCustomDelphiMaster (2002-10-19 17:43:00) [1]procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if (Msg.message = WM_SysCommand) and (Msg.wParam = IDM_About) then
ShowMessage("By, Word!");
end;
FnF (2002-10-19 16:53:00) [2]Ошибочка:
вместо:
InsertMenu(SysMenu,UINT(4),MF_ByPosition,IDM_My,"Мой пункт меню");
надо:
InsertMenu(SysMenu,UINT(4),MF_ByPosition,IDM_About,"Мой пункт меню");