1. D6 + Flash MX OCX 本身有去掉菜单的功能2. 程序实现,主要是滤掉右键消息:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, ShockwaveFlashObjects_TLB, Menus;type
TForm1 = class(TForm)
ShockwaveFlash1: TShockwaveFlash;
procedure FormCreate(Sender: TObject);
private
procedure HookRMenuMessage(var AMsg: TMsg; var Handled: Boolean);
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := HookRMenuMessage;
end;procedure TForm1.HookRMenuMessage(var AMsg: TMsg; var Handled: Boolean);
begin
if (AMsg.message = WM_RBUTTONDOWN) and (AMsg.hwnd = ShockwaveFlash1.Handle) then
Handled := True;
end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, ShockwaveFlashObjects_TLB, Menus;type
TForm1 = class(TForm)
ShockwaveFlash1: TShockwaveFlash;
procedure FormCreate(Sender: TObject);
private
procedure HookRMenuMessage(var AMsg: TMsg; var Handled: Boolean);
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := HookRMenuMessage;
end;procedure TForm1.HookRMenuMessage(var AMsg: TMsg; var Handled: Boolean);
begin
if (AMsg.message = WM_RBUTTONDOWN) and (AMsg.hwnd = ShockwaveFlash1.Handle) then
Handled := True;
end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, ShockwaveFlashObjects_TLB;
type
TMyFlash = class(TShockwaveFlash)
public
procedure TWMRBUTTONDOWN(var msg:TMsg); message WM_RBUTTONDOWN;
end;
TForm1 = class(TForm)
f1: TShockwaveFlash;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
f2 : TMyFlash;
{ Public declarations }
end;
var Form1: TForm1;implementation{$R *.dfm}procedure TMyFlash.TWMRBUTTONDOWN(var msg:TMsg);
begin
//加入自己的事件处理end; procedure TForm1.Button1Click(Sender: TObject);
begin
f2 := TMyFlash.Create(nil);
f2.Parent := Form1;
end;
end.
var Handled: Boolean);
begin
if Msg.message = WM_RBUTTONDOWN then Handled := True;
end;If by chance you wanted to place your own popupmenu, then do the following:procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if Msg.message = WM_RBUTTONDOWN then
begin
popupmenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
Handled := True;
end;
end;