像 FlashGet 中哪样悬浮透明窗口如何做出来?(50分)

  • 主题发起人 主题发起人 PENGS
  • 开始时间 开始时间
P

PENGS

Unregistered / Unconfirmed
GUEST, unregistred user!
简单的 Greateparmas 与 CMEraseBkgnd 解决不了问题,
我是说
窗口在移动时。
仍仍保持半透明状态。比如网络蚂蚁与 FlashGet 中的悬浮透明窗口
请知道的朋友提供控姐或源妈与思路都行
多谢
 
转贴一篇千堆雪大侠的代码,确实好用!
在windows2000下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
const
WS_EX_LAYERED = $80000;
AC_SRC_OVER = $0;
AC_SRC_ALPHA = $1;
AC_SRC_NO_PREMULT_ALPHA = $1;
AC_SRC_NO_ALPHA = $2;
AC_DST_NO_PREMULT_ALPHA = $10;
AC_DST_NO_ALPHA = $20;
LWA_COLORKEY = $1;
LWA_ALPHA = $2;
ULW_COLORKEY = $1
ULW_ALPHA = $2
ULW_OPAQUE = $4
//新增加的常量定义
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

function SetLayeredWindowAttributes(hwnd:HWND;
crKey:Longint;
bAlpha:byte;
dwFlags:longint ):longint;
stdcall;
external user32;//函数声明
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var l:longint;
begin
l:=getWindowLong(Handle, GWL_EXSTYLE);
l := l Or WS_EX_LAYERED;
SetWindowLong (handle, GWL_EXSTYLE, l);
SetLayeredWindowAttributes (handle, 0, 180, LWA_ALPHA);
//第二个参数是指定透明颜色
//第二个参数为0则使用第四个参数设置alpha值,从0到255
end;

end.
 
在Windows2K + Delphi6 下 直接设置窗体属性(允许透明,透明度)就可以了!
 
记得葵花宝典上有个蚂蚁窗口的例子,你去翻翻看。
 
SpyX说得没错
 
HD_Copy,SpyX讲的是一样的!
 
:)
错了
HD_Copy,白衣书生讲的是一样的!
 
后退
顶部