如何改变窗体边框颜色?求助!!!(100分)

  • 主题发起人 主题发起人 rainlyd
  • 开始时间 开始时间
R

rainlyd

Unregistered / Unconfirmed
GUEST, unregistred user!
如何改变窗体边框颜色?求助!!!
 
你说的太含糊了,到底是想达到什么效果?
 
举个简单例子:把Form的边框颜色改为红色,但是窗体的颜色不变!
如何去做??
 
在窗体的边框上画图
我有个例子,你自己看看吧
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.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, 2, RGB(255, 0, 0));//2为笔的宽度
OldPen := SelectObject(dc, Pen);
OldBrush := SelectObject(dc, GetStockObject(NULL_BRUSH));
Rectangle(dc, 0,0, Form1.Width, Form1.Height);
SelectObject(dc, OldBrush);
SelectObject(dc, OldPen);
DeleteObject(Pen);
ReleaseDC(Handle, Canvas.Handle);
end;

 
谢谢 来如风!但是看不太懂
 
能不能解释一下?谢谢!
明天结贴!
 
我也不太懂,碰到这种东西我一般都是先拿来用,解决问题以后慢慢研究的,
这其实就是对窗体的重绘啊,截获信息以后就绘制一遍
 
谢谢了!
 
你说的颜色是固定的还是要改变的,我觉得可以调用win32Ip来做的
 
可以改变的颜色,怎么做?
 
WMNCPaint是在非客户区画图的消息
 
我试了一些api函数,但是我很疑惑的是,你说的边框具体是什么?
我这里有一个小的东西,你可以自己查一下到底用什么参数。
界面上只有2个button
var
Form1: TForm1;
i,c1,c2 :TColorRef;


procedure TForm1.Button1Click(Sender: TObject);
begin
C1 :=COLOR_INACTIVEBORDER ;
c2 :=RGB(0,0,0);
i :=GetSysColor(c1);
SetSysColors(1,c1,c2);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
SetSysColors(1,c1,i);
end;

只需要更改c1的值就可以了。
这个东西很有用的。
 
多人接受答案了。
 
后退
顶部