请教各位大富翁边框怎么画??? ( 积分: 100 )

  • 主题发起人 主题发起人 twoghost
  • 开始时间 开始时间
T

twoghost

Unregistered / Unconfirmed
GUEST, unregistred user!
我作了一个园角矩形的窗体
procedure TPortForm.FormCreate(Sender: Tobject);
var hr :thandle;
begin
hr:=createroundrectrgn(0,0,width,height,20,20);
setwindowrgn(handle,hr,true);
end;
可是园角的地方没有边框不知如何画??请大哥大姐帮忙了
 
我作了一个园角矩形的窗体
procedure TPortForm.FormCreate(Sender: Tobject);
var hr :thandle;
begin
hr:=createroundrectrgn(0,0,width,height,20,20);
setwindowrgn(handle,hr,true);
end;
可是园角的地方没有边框不知如何画??请大哥大姐帮忙了
 
这样吧
hr:=createroundrectrgn(1,1,width-2,height-2,20,20);
 
你再查查书把,我记得有专门画园角的,只是不记得怎么写的
 
加上下面代码:
procedure TForm1.FormPaint(Sender: TObject);
var
DC: HDC;
Pen: TPen;
OldPen: HPen;
OldBrush: HBrush;
begin
DC := GetWindowDC(Handle);
Pen := TPen.Create;

Pen.Color := clGray;
OldPen := SelectObject(DC, Pen.Handle); //载入自定义的画笔,保存原画笔
OldBrush := SelectObject(DC, GetStockObject(NULL_BRUSH));//载入空画刷,保存原画刷
RoundRect(DC, 0, 0, Width-1, Height-1,21,21); //画暗边框

Pen.Color := clSilver;
SelectObject(DC, Pen.Handle);
RoundRect(DC, 0, 0, Width, Height,21,21); //画亮边框

SelectObject(DC,OldBrush);//载入原画刷
SelectObject(DC,OldPen); // 载入原画笔
Pen.Free;
ReleaseDC(Handle, DC);
end;
如果不明白,自己试试就知道了。
 
多人接受答案了。
 
后退
顶部