而且窗口最小化切换 时 总能看到 windows的 标题栏~~
怎么制作QQ宠物似的 桌面精灵
11 个解决方案
#1
学习;顶;mark;
不知道可不可以用别的控件?
不知道可不可以用别的控件?
#2
自己顶
#3
而且窗口最小化切换 时 总能看到 windows的 标题栏~~/
//////////////
这些问题,一般是一些消息没有处理,导致重画,所以看到标题栏....
//////////////
这些问题,一般是一些消息没有处理,导致重画,所以看到标题栏....
#4
这是一段透明窗体的实现代码,你可以参考(把边框、标题去掉)。这样, form上的其他控件(如Timage)可见,而form的其他部分不可见。
#5
接楼上
代码如下
Var FullRgn, ClientRgn, CtlRgn : THandle;
procedure TFormMain.DoInvisible;
var
AControl : TControl;
A, Margin, X, Y, CtlX, CtlY : Integer;
begin
Margin := ( Width - ClientWidth ) div 2;
//First, get form region
FullRgn := CreateRectRgn(0, 0, Width, Height);
//Find client area region
X := Margin;
Y := Height - ClientHeight - Margin;
ClientRgn := CreateRectRgn( X, Y, X + ClientWidth, Y + ClientHeight );
//'Mask' out all but non-client areas
CombineRgn( FullRgn, FullRgn, ClientRgn, RGN_DIFF );
//Now, walk through all the controls on the form and 'OR' them
// into the existing Full region.
for A := 0 to ControlCount - 1 do begin
AControl := Controls[A];
if ( AControl is TWinControl ) or ( AControl is TGraphicControl )
then with AControl do begin
if Visible then begin
CtlX := X + Left;
CtlY := Y + Top;
CtlRgn := CreateRectRgn( CtlX, CtlY, CtlX + Width, CtlY + Height );
CombineRgn( FullRgn, FullRgn, CtlRgn, RGN_OR );
end;
end;
end;
//When the region is all ready, put it into effect:
SetWindowRgn(Handle, FullRgn, TRUE);
deleteobject(fullrgn);
end;
procedure TFormMain.FormCreate(Sender: TObject);
begin
doinvisible;
end;
代码如下
Var FullRgn, ClientRgn, CtlRgn : THandle;
procedure TFormMain.DoInvisible;
var
AControl : TControl;
A, Margin, X, Y, CtlX, CtlY : Integer;
begin
Margin := ( Width - ClientWidth ) div 2;
//First, get form region
FullRgn := CreateRectRgn(0, 0, Width, Height);
//Find client area region
X := Margin;
Y := Height - ClientHeight - Margin;
ClientRgn := CreateRectRgn( X, Y, X + ClientWidth, Y + ClientHeight );
//'Mask' out all but non-client areas
CombineRgn( FullRgn, FullRgn, ClientRgn, RGN_DIFF );
//Now, walk through all the controls on the form and 'OR' them
// into the existing Full region.
for A := 0 to ControlCount - 1 do begin
AControl := Controls[A];
if ( AControl is TWinControl ) or ( AControl is TGraphicControl )
then with AControl do begin
if Visible then begin
CtlX := X + Left;
CtlY := Y + Top;
CtlRgn := CreateRectRgn( CtlX, CtlY, CtlX + Width, CtlY + Height );
CombineRgn( FullRgn, FullRgn, CtlRgn, RGN_OR );
end;
end;
end;
//When the region is all ready, put it into effect:
SetWindowRgn(Handle, FullRgn, TRUE);
deleteobject(fullrgn);
end;
procedure TFormMain.FormCreate(Sender: TObject);
begin
doinvisible;
end;
#6
微软有控件,office里的助手就是那个!
#7
对阿~~像瑞星狮子也是一样的。欢迎大家提供资料啊
#8
Agent类
#9
Agent,Windows就提供了。可以参考:
http://linux.ccidnet.com/art/1081/20060207/423291_1.html
不过在Delphi下面比较简单,直接导入ActivX控件就行了。
http://linux.ccidnet.com/art/1081/20060207/423291_1.html
不过在Delphi下面比较简单,直接导入ActivX控件就行了。
#10
http://community.csdn.net/Expert/TopicView.asp?id=5191043
这么 好的问题 竟然没人回答~~分数少的问题?
这么 好的问题 竟然没人回答~~分数少的问题?
#11
QQPet用的Flash,使用Transparent Falsh Player技术
有Delphi版本的,不过是商业版本
有Delphi版本的,不过是商业版本
#1
学习;顶;mark;
不知道可不可以用别的控件?
不知道可不可以用别的控件?
#2
自己顶
#3
而且窗口最小化切换 时 总能看到 windows的 标题栏~~/
//////////////
这些问题,一般是一些消息没有处理,导致重画,所以看到标题栏....
//////////////
这些问题,一般是一些消息没有处理,导致重画,所以看到标题栏....
#4
这是一段透明窗体的实现代码,你可以参考(把边框、标题去掉)。这样, form上的其他控件(如Timage)可见,而form的其他部分不可见。
#5
接楼上
代码如下
Var FullRgn, ClientRgn, CtlRgn : THandle;
procedure TFormMain.DoInvisible;
var
AControl : TControl;
A, Margin, X, Y, CtlX, CtlY : Integer;
begin
Margin := ( Width - ClientWidth ) div 2;
//First, get form region
FullRgn := CreateRectRgn(0, 0, Width, Height);
//Find client area region
X := Margin;
Y := Height - ClientHeight - Margin;
ClientRgn := CreateRectRgn( X, Y, X + ClientWidth, Y + ClientHeight );
//'Mask' out all but non-client areas
CombineRgn( FullRgn, FullRgn, ClientRgn, RGN_DIFF );
//Now, walk through all the controls on the form and 'OR' them
// into the existing Full region.
for A := 0 to ControlCount - 1 do begin
AControl := Controls[A];
if ( AControl is TWinControl ) or ( AControl is TGraphicControl )
then with AControl do begin
if Visible then begin
CtlX := X + Left;
CtlY := Y + Top;
CtlRgn := CreateRectRgn( CtlX, CtlY, CtlX + Width, CtlY + Height );
CombineRgn( FullRgn, FullRgn, CtlRgn, RGN_OR );
end;
end;
end;
//When the region is all ready, put it into effect:
SetWindowRgn(Handle, FullRgn, TRUE);
deleteobject(fullrgn);
end;
procedure TFormMain.FormCreate(Sender: TObject);
begin
doinvisible;
end;
代码如下
Var FullRgn, ClientRgn, CtlRgn : THandle;
procedure TFormMain.DoInvisible;
var
AControl : TControl;
A, Margin, X, Y, CtlX, CtlY : Integer;
begin
Margin := ( Width - ClientWidth ) div 2;
//First, get form region
FullRgn := CreateRectRgn(0, 0, Width, Height);
//Find client area region
X := Margin;
Y := Height - ClientHeight - Margin;
ClientRgn := CreateRectRgn( X, Y, X + ClientWidth, Y + ClientHeight );
//'Mask' out all but non-client areas
CombineRgn( FullRgn, FullRgn, ClientRgn, RGN_DIFF );
//Now, walk through all the controls on the form and 'OR' them
// into the existing Full region.
for A := 0 to ControlCount - 1 do begin
AControl := Controls[A];
if ( AControl is TWinControl ) or ( AControl is TGraphicControl )
then with AControl do begin
if Visible then begin
CtlX := X + Left;
CtlY := Y + Top;
CtlRgn := CreateRectRgn( CtlX, CtlY, CtlX + Width, CtlY + Height );
CombineRgn( FullRgn, FullRgn, CtlRgn, RGN_OR );
end;
end;
end;
//When the region is all ready, put it into effect:
SetWindowRgn(Handle, FullRgn, TRUE);
deleteobject(fullrgn);
end;
procedure TFormMain.FormCreate(Sender: TObject);
begin
doinvisible;
end;
#6
微软有控件,office里的助手就是那个!
#7
对阿~~像瑞星狮子也是一样的。欢迎大家提供资料啊
#8
Agent类
#9
Agent,Windows就提供了。可以参考:
http://linux.ccidnet.com/art/1081/20060207/423291_1.html
不过在Delphi下面比较简单,直接导入ActivX控件就行了。
http://linux.ccidnet.com/art/1081/20060207/423291_1.html
不过在Delphi下面比较简单,直接导入ActivX控件就行了。
#10
http://community.csdn.net/Expert/TopicView.asp?id=5191043
这么 好的问题 竟然没人回答~~分数少的问题?
这么 好的问题 竟然没人回答~~分数少的问题?
#11
QQPet用的Flash,使用Transparent Falsh Player技术
有Delphi版本的,不过是商业版本
有Delphi版本的,不过是商业版本