如何屏蔽real控件自带的右键弹出菜单?(用过real控件的高手请进!!!)(100分)

  • 主题发起人 主题发起人 jimmy81
  • 开始时间 开始时间
J

jimmy81

Unregistered / Unconfirmed
GUEST, unregistred user!
在用real控件播放视频时,当鼠标移到播放界面上,点击右键总是弹出real自己的右键
菜单,很霸道,去不掉,各位高手可有见解?!(我想了很久,终究无法攻克)
给点意见,就算不懂也随便侃侃~!欢迎![:)]
 
这个问题去年就有人问过了,可是没有人回答正确,
你找找去年的贴子吧
 
啊?这个问题已经有人提出过吗?没有解决方法吗?苦……
 
没想到对于过去人来说棘手的问题到了现在一样棘手啊……………………………………

难道就没有高手能解决这个问题吗?
 
来,搅和一下,出个损招儿:)
在播放界面上面放个大LABEL,给它TRANSPARENT:=TRUE;盖了它,看看怎么样?
不对别拍我,随便说说
 
哈哈哈,放个Bevel最好,让它置于最前~~
 
请允许问一个问题,
id是什么啊?
 
可爱的JIMMY老兄,这个问题我一定能帮你解决,trust me ,trust the god
代码:
 
really??希望以后能多交流!qq:8876435
 
作为一个COM控件,我想如果real不提供屏蔽功能调用,那就只能修改real本身,

就如同破解共享控件一样。

有个,个人想法。。。您试试用消息钩子,挡了鼠标消息?!
 
对钩子我不太熟悉,可以交流下吗?我到你主页看了,不错啊!可是什么才完成呢?;)
 
问题还没解决,有那位高手能帮帮忙吗?
 
和Flash控件类似,总是弹出一个Flash自己的版权信息,烦死了,我现在用的一个笨蛋方法
就是截获鼠标右键消息,不让弹出菜单出来。
 
白沙兄:可以请教下你怎么做的吗?
 
你的联系方式?
 
知道解决方法的兄台可以交流一下吗?迫切!
 
unit USplash;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, OleCtrls, ShockwaveFlashObjects_TLB, Buttons;

type
TfrmSplash = class(TForm)
Timer1: TTimer;
flash: TShockwaveFlash;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure mymessage(var msg:tmsg;var handled:boolean);
procedure FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
keepFrm:boolean;
end;


var
frmSplash: TfrmSplash;

implementation

{$R *.dfm}

procedure TfrmSplash.FormCreate(Sender: TObject);
begin

keepFrm:=true;
flash.Movie:='d:/aa.swf';
flash.Loop:=false;
flash.Play;
application.onmessage:=mymessage;

end;


procedure TfrmSplash.FormClose(Sender: TObject;
var Action: TCloseAction);
begin

keepFrm:=false;
end;


procedure TfrmSplash.Timer1Timer(Sender: TObject);
begin

if not flash.Playing then
keepFrm:=false;
end;


procedure TfrmSplash.mymessage(var msg: tmsg;
var handled: boolean);
begin

if (msg.message=wm_rbuttondown) and (msg.hwnd=flash.handle) then

begin

handled:=true;
end;

end;


procedure TfrmSplash.FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin

if key=VK_ESCAPE then
//如果按下ESC键,则马上停止显示窗体
keepFrm:=false;
end;


end.


有一个小问题,所有的消息都通过mymessage处理了,所以提早释放这个窗体将导致
内存错误,我想最好能够将这个消息只是在本窗体使用,但是我不会写,会的告诉我
一声.
 
有没有禁止了它的右键菜单的同时又显示自己的右键菜单的方法呢???help!!!
 
???
没搞错,在
procedure TfrmSplash.mymessage(var msg: tmsg;
var handled: boolean);
begin

if (msg.message=wm_rbuttondown) and (msg.hwnd=flash.handle) then

begin

handled:=true;
end;

end;
里面加上你需要弹出的菜单不就可以了???
 
好象不行啊!可能你那是flash可以,我这边real不成功啊
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
851
DelphiTeacher的专栏
D
后退
顶部