在delphi中怎样屏蔽flash的鼠标右键?
在delphi中使用TShockwaveFlash控件,但怎样屏蔽flash的鼠标右键?另外,能否设置这个flash的透明属性呢? 问题点数:40、回复次数:6Top
1 楼anndy1999(飞雪)回复于 2005-04-02 20:05:17 得分 0
补充一下,是透明属性不是透明度属性哦,Top
2 楼newc_k(帕拉丁)回复于 2005-04-02 22:43:12 得分 30
这个是用在WEBBROWSE上的,你改一下因该就可以了
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
var
mPoint : TPoint;
begin
if IsChild(WebBrowser.Handle, Msg.Hwnd) and
((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP) then
begin
GetCursorPos(mPoint);
PopupMenu1.Popup(mPoint.X, mPoint.Y);
Handled:=True;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Application.OnMessage := ApplicationEvents1Message;
end;Top
3 楼ghyghost(爱国人士-许愿池里的希腊老石头)回复于 2005-04-03 00:47:44 得分 0
判断鼠标右键时,加入FLASH控件的HANDLE句柄,这样不至于整个屏蔽掉。。
加透明的效果在FLASH中是wmode参数名,,参数值为transparent,,,
但在DELPHI中实现的话得需要flash action脚本,看一下,flash控件中有没有执行的功能。这个没有实现过。Top
4 楼ghyghost(爱国人士-许愿池里的希腊老石头)回复于 2005-04-03 01:11:47 得分 0
看看这个
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, ShockwaveFlashObjects_TLB, StdCtrls, Buttons, ExtCtrls,
SHDocVw,mshtml, ActiveX, AppEvnts;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure WebBrowser1StartDrag(Sender: TObject;
var DragObject: TDragObject);
procedure BitBtn1EndDrag(Sender, Target: TObject; X, Y: Integer);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
//簿笆跌怠
procedure WMNCHitTest(var msg: TWMNCHitTest); message WM_NCHITTEST;
public
{ Public declarations }
procedure getPhoto();
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('about:blank');
end;
procedure TForm1.getPhoto;
var DC : HDC;
bp : TBitmap;
begin
try
Form1.Hide;
except
end;
//WebBrowser1.Hide;
bp := TBitmap.Create;
bp.PixelFormat := pf24bit;
bp.Width := WebBrowser1.Width;
bp.Height := WebBrowser1.Height;
DC := GetDC(Form1.Handle);
BitBlt(bp.Canvas.Handle,0,0,bp.Width,bp.Height,DC,WebBrowser1.Left+2,WebBrowser1.Top+2 ,SRCCOPY);
ReleaseDC(bp.Canvas.Handle,DC);
bp.SaveToFile('CC.bmp');
Form1.Show;
end;
procedure TForm1.WMNCHitTest(var msg: TWMNCHitTest);
begin
if msg.Result = htClient then
msg.Result := htCaption;
end;
procedure TForm1.WebBrowser1StartDrag(Sender: TObject;
var DragObject: TDragObject);
const
SC_DRAGMOVE = $F012;
begin
ReleaseCapture;
Form1.Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
getPhoto;
WebBrowser1.Navigate(ExtractFilePath(Application.ExeName) + 't1.html');
end;
procedure TForm1.BitBtn1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
Screen.Cursor := crDefault;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
getPhoto;
WebBrowser1.Navigate(ExtractFilePath(Application.ExeName) + 't1.html');
end;
end.
Top
5 楼ghyghost(爱国人士-许愿池里的希腊老石头)回复于 2005-04-03 01:12:26 得分 0
另外一种方法是设置FORM透明色的方法Top
6 楼metal11516580(金属狂人)回复于 2005-04-03 08:45:16 得分 10
procedure TMyFlash.WMRBUTTONDOWN(var msg: TMsg);
var
P: Tpoint;
begin
if popupmenu <> nil then //加入自己的事件
begin
GetCursorPos(p); //获得当前鼠标位置
popupmenu.Popup(p.x, p.y); //弹出菜单
end;
end;
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;
------------------------------------
心中多少的创伤,不可抵挡的空虚,卑躬屈膝的一生,今天只想冲出那枷锁,就要象狂人,金属者---金属狂人Top




