Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

System menu   Найти похожие ветки 

 
kirasuki ©   (2004-08-13 09:55) [0]

Пытаюсь добавить свой пункт в системное меню (Буилдер).


HMENU hSysMwnu = GetSystemMenu(Handle, FALSE);
MENUITEMINFO mii = {sizeof(mii), MIIM_STRING | MIIM_ID | MIIM_FTYPE, };
mii.fType = MFT_STRING;
mii.dwTypeData = "About...";
mii.wID = 11066;
InsertMenuItem(hSysMwnu, 11066, FALSE, &mii);


В выпадающем меню в левой ыерхней части окна все OK. А при щелчке правой кнопкой на таскбаре фрамеворк его прибивает.

Вопрос. Как отловить клик на таскбаре и показать нормальное меню. Возможно ли это?


 
_student   (2004-08-13 11:36) [1]

Может подойдёт

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, AppEvnts;

type
 TForm1 = class(TForm)
   ApplicationEvents1: TApplicationEvents;
   procedure FormCreate(Sender: TObject);
   procedure ApplicationEvents1Message(var Msg: tagMSG;
     var Handled: Boolean);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 AppendMenu(GetSystemMenu(handle, false), MF_SEPARATOR, 0, "");
 AppendMenu(GetSystemMenu(handle, false), MF_STRING, 100, "My");

 AppendMenu(GetSystemMenu(Application.handle,false),MF_SEPARATOR,0,"");
 AppendMenu(GetSystemMenu(Application.handle,false),MF_STRING,100,"My");
end;

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
begin
  if (msg.message=wm_syscommand)and(msg.wParam=100) then
    ShowMessage("Hello");

end;

end.


 
kirasuki ©   (2004-08-13 11:44) [2]

Спасибо, но уже разобрался сам.


 
wicked ©   (2004-08-13 11:49) [3]

жуть... :)
на самом деле на таскбаре мы видим кнопку совсем не того окна, которое "главная форма"... а того, которое Application->Handle...
посему здесь напрашиваются такие решения:
1. показать на таскбаре кнопку окна главной формы (перекрыть CreateParams и добавить в ExStyle стиль WS_EX_APPWINDOW) и убрать с таскбара кнопку окна Application - ShowWindow(Application->Handle, SW_HIDE)...
2. добавить тот де пункт меню к Application->Handle...



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.081 c
4-1092476144
_Stalker_
2004-08-14 13:35
2004.09.26
Страничная память


10-1042011765
McSimm
2003-01-08 10:42
2004.09.26
От человека, не имеющего возможности пользоваться интернетом


4-1092829741
WondeRu
2004-08-18 15:49
2004.09.26
Как узнать Handle всех окон данного приложения?


4-1092211955
Yurik
2004-08-11 12:12
2004.09.26
ListView с возможностью отображения больших картинок


4-1091445353
the_ram
2004-08-02 15:15
2004.09.26
Tray