Форум: "WinAPI";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c