控件透明问题!解决者送300分! ( 积分: 100 )

  • 主题发起人 主题发起人 sbamwdx
  • 开始时间 开始时间
S

sbamwdx

Unregistered / Unconfirmed
GUEST, unregistred user!
ACTIVEX控件,要能在WORD或其它程序中使用时能够透明,就像Timage 一样。主要目的为要在控件上放一图片,在控件使用时只能看到图片,其它地方为透明。
 
自己实现无窗口活化接口。没有资料可以参考,ATL 库里也没有实现,但确实存在。
 
能否再详细点。
我试了以下方法:

procedure CreateParams(var Params: TCreateParams);
const
BorderStyles: array[TBorderStyle] of DWORD = (0, WS_BORDER);
begin

inherited CreateParams(Params);
with Paramsdo
begin

Style := Style or BorderStyles[bsSingle];
if NewStyleControls and Ctl3D then
begin

Style := Style and not WS_BORDER;
ExStyle := ExStyle or WS_EX_CLIENTEDGE;
ExStyle := ExStyle or WS_EX_TRANSPARENT
end;

WindowClass.style := WindowClass.style and not (CS_HREDRAW or CS_VREDRAW);
end;

end;

procedure ActiveFormCreate(Sender: TObject);
begin

ControlStyle := ControlStyle - [csOpaque];
end;



以及
SetWindowLong(Handle,GWL_EXSTYLE,GetWindowLong(Handle,GWL_EXSTYLE) or WS_EX_TRANSPARENT);


最后的效果依然不行。在EXE里可以很容易实现,可到ACTIVEX里就都不管用了!!

在ATL 里有人说要用 windowsless 来解决。可以D里无论如何设置都不管用啊!天啊!郁闷死了!!
 
小雨哥快来帮帮忙啊!!麻烦再给些指点!
 
我帮你顶一下吧。
哎。遇到困难的时候才知道高手的重要性啊。
 
言之有理啊!,现在就觉得DELPHI做ACTIVEX就是赶不上VB啊,郁闷中。
 
后退
顶部