|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"SystemCommandの設定"
システムコマンドに独自のものを設定する方法です。
Form上とTaskBar上では設定方法が異なります。
TaskBar上のMenuハンドルは、Applicationが持っている点に注意
WinAPIのGetSystemMenuは、Menuハンドルを返しますので、InsertMenu、ModifyMenu等
のAPIでMenu項目を編集することでコマンドが編集されます。
Menu選択時のメッセージをトラップするためには、ApplicationのOnMessageイベントを
定義すればよい
type
TForm4 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
procedure AppMsg(var Msg: TMsg; var Handled: Boolean);
public
{ Public 宣言 }
end;
var
Form4: TForm4;
implementation
{$R *.DFM}
Const
Menu_ID = 10; {追加メニューのメニューID}
procedure TForm4.AppMsg(var Msg: TMsg; var Handled: Boolean);
begin
If Msg.wParam = Menu_ID Then begin
{項目1をクリックした時の処理}
Application.MessageBox('OK','',0);
Handled:=True;
end;
end;
procedure TForm4.FormCreate(Sender: TObject);
var
Mn : HMenu;
begin
Application.OnMessage:=AppMsg;
Mn := GetSystemMenu(Handle,False);
If Not AppendMenu(Mn,MF_STRING,Menu_ID,'項目1') Then
ShowMessage('Error');
Mn := GetSystemMenu(Application.Handle,False);
If Not AppendMenu(Mn,MF_STRING,Menu_ID,'項目1') Then
ShowMessage('Error');
end;
Original document by RIN 氏 ID:(ZVQ05076)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|