请教窗口控制高手,如何改变窗口边框的颜色(200分)

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

ch

Unregistered / Unconfirmed
GUEST, unregistred user!
本人因工作需要,需在桌面显示一透明窗体,此问题以解决,现在的问题是此透明
窗体的边框(即 Height-ClienHeight 与 Width-ClientWidth 部分)的颜色是系
统缺省的灰白色,请问有何方法改变它.
 
把窗体设为没边框吧。
 
是啊,设成bsnone,然后自己画:


参见:<a href="http://www.delphibbs.com/delphibbs/DispQ.asp?LID=399936">如何制作一个类似于bsNone类型的没有3DFRAME的窗口.另外还要能够响应窗口边界的RESIZE拖动</a>
 
>> ch
能否免费 ^_^ 告诉我,“桌面显示一透明窗体“. Please Email to :jiceyang@21cn.com
Thank you ! *_*
 
用API函数就可以解决这个问题了!
定义一个过程就可以了
procedure TTongji.WMNCPaint(var Msg: TWMNCPaint);
var
dc : hDc;
Pen : hPen;
OldPen : hPen;
OldBrush : hBrush;
begin
inherited;
dc := GetWindowDC(Handle);
msg.Result := 1;
Pen := CreatePen(PS_SOLID, 1, RGB(255, 100, 0));
OldPen := SelectObject(dc, Pen);
OldBrush := SelectObject(dc, GetStockObject(NULL_BRUSH));
Rectangle(dc, 0,0, Tongji.Width, Tongji.Height);
SelectObject(dc, OldBrush);
SelectObject(dc, OldPen);
DeleteObject(Pen);
ReleaseDC(Handle, Canvas.Handle);
end;
 
感谢xiao_wen, 因为不理解变量msg ,所以我将你的Procedure作了改动,将msg.Result := 1删除,
放在了form的onpaint事件中,同时将onactive共享此事件,现在的问题是此当透明窗体被其它
窗体遮掩又移走后,被遮掩部分将露出原来的颜色。所以能否详细解释一下此过程用法 ,另外
form的painthandelr与此过程又何联系。我的email: c.zh@china.com
 
有个笨办法在窗体的四周放Shape,然后自己搭配颜色,也可以有立体感
 
你只需要在 private部分定义一下就可以了
。。。。。。。
private
{ Private declarations }
procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT;
public
{ Public declarations }
end;
implementation
。。。。。。。
其它工作都不需要做
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
592
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
774
import
I
后退
顶部