关掉弹出窗口(150分)

  • 主题发起人 主题发起人 cheka
  • 开始时间 开始时间
C

cheka

Unregistered / Unconfirmed
GUEST, unregistred user!
写的一个程序里用了Flash的OCX,我很讨厌用鼠标在上面
右击就会出现About Flash的弹出窗口,想让它一出来就
自动关闭。
用了以下几个办法,都不顶用
1.在Form里重载WM_LBUTTONDOWN,无法截获该ActiveX控件
的鼠标事件
2.重载WM_KILLFOCUS,可以截获改组件的鼠标右击事件,
SDK帮助里说它的wParam就是弹出窗口的句柄,可是实际却
为零,无法用SendMessge关掉该窗口
3.还是重载WM_KILLFOCUS,用EnumWindows找出顶层窗口,
在回调函数中关闭,并返回false。 但依然无效。
 
找一个透明的控件放它的上面,不就ok?!
 
受不了了,真是好办法。
应该能解决,再想听听别的大侠的想法
 
修改ocx原文件代码
 
我怎么记得弹出的是菜单?
如果是菜单的话我就有办法。
 
有一个软件叫FreeActiveX,专门干这个的,你在网上找一找吧
 
to liuchuanbo
你指改TLB文件吗? 我从没仔细看过,明天研究一下
To o*o:
对对对,是菜单,什么办法?
 
To automn
不行,ActiveX上面不能放置TImage或是TLabel
 
应当截获WM_MOUSEACTIVATE
WM_MOUSEACTIVATE的处理:
var p:TPoint;
r:TRect;
GetCursorPos(p);
GetWindowRect(Flash1.Handle,r);
if PtInRect(r,p) then
PostMessage(Flash1.Handle,WM_LBUTTONDOWN,0,0);
 
多人接受答案了。
 
后退
顶部