如何制作空心(图形不是文字)窗体。 rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.FormCreate(Sender: TObject);varrgn:HRGN;beginBeginPath(Canvas.Handle);SetBkMode( Canvas.Handle, TRANSPARENT );Canvas.Font.Name:= '宋体';Canvas.Font.Size:=100;Canvas.TextOut( 20, 20, '漂亮吗?');//用"漂亮吗?"作为form的形状EndPath(Canvas.Handle);rgn:= PathToRegion(Canvas.Handle);SetWindowRgn( Handle, rgn, true );end;着是文字镂空的,我想做图形镂空。 procedure TForm1.FormCreate(Sender: TObject);varrgn:HRGN;beginBeginPath(Canvas.Handle);SetBkMode( Canvas.Handle, TRANSPARENT );Canvas.Font.Name:= '宋体';Canvas.Font.Size:=100;Canvas.TextOut( 20, 20, '漂亮吗?');//用"漂亮吗?"作为form的形状EndPath(Canvas.Handle);rgn:= PathToRegion(Canvas.Handle);SetWindowRgn( Handle, rgn, true );end;着是文字镂空的,我想做图形镂空。 是不是这种?procedure TForm1.FormCreate(Sender: TObject); var FullRgn, ClientRgn, ButtonRgn: THandle; Margin, X, Y: Integer; begin Margin := (Width - ClientWidth) div 2; FullRgn := CreateRectRgn(0, 0, Width, Height); X := Margin; Y := Height - ClientHeight - Margin; ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight); CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF); X := X + Button1.Left; Y := Y + Button1.Top; ButtonRgn := CreateRectRgn(X, Y, X + Button1.Width, Y + Button1.Height); CombineRgn(FullRgn, FullRgn, ButtonRgn, RGN_OR); SetWindowRgn(Handle, FullRgn, True); end;就是在窗体里抠几个几何形状的洞?用上面的方法,你多做几个区域,然后与或非就行了具体的看看API的帮助就行了我在上学的时候曾经用它做出过很好玩的窗体形状 不要用阿德的方法,笨!Irians的方法最好,使用BeginPath和EndPath就可以了! Sorry,没有看清楚,Irians是楼主啊!呵呵,文字镂空和图形镂空有什么区别吗? ComboBox输入查询只能写一个字 记事本中的查找代码和查找下一个代码怎么写? 关于parameters的问题? 找测试“内存泄漏”和测试“网络流量”的工具 执行存储过程,报:Error Creating Cursor Handle异常 如何调整的QRDBText字间距?大虾求命! 饼图显示ado数据源提供的数据是如何实现的呢? 哪位高手能够把ehlib的帮助文件翻译过来?或者是把常用的功能用中文解释一下? 机器翻译软件 在dbgrid能否固定第一列不让滚动呢???? 一个简单问题 来看看 交交我这个菜鸟
var
FullRgn, ClientRgn, ButtonRgn: THandle;
Margin, X, Y: Integer;
begin
Margin := (Width - ClientWidth) div 2;
FullRgn := CreateRectRgn(0, 0, Width, Height);
X := Margin;
Y := Height - ClientHeight - Margin;
ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight);
CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF);
X := X + Button1.Left;
Y := Y + Button1.Top;
ButtonRgn := CreateRectRgn(X, Y, X + Button1.Width, Y + Button1.Height);
CombineRgn(FullRgn, FullRgn, ButtonRgn, RGN_OR);
SetWindowRgn(Handle, FullRgn, True);
end;
就是在窗体里抠几个几何形状的洞?用上面的方法,你多做几个区域,然后与或非就行了具体的看看API的帮助就行了我在上学的时候曾经用它做出过很好玩的窗体形状