也说说c++builder中的不规则窗体的实现

本文探讨了如何在C++Builder中更简便地创建不规则窗体,指出原有方法的不足,并提供了改进的代码示例,通过设置窗体属性实现高效不规则窗体设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  最近看了《C++Builder中不规则窗体的快速显示》2000-09-07· 陶志才·yesky(http://www.powerba.com/develop/bcb/article/20000916007.htm),自己去做了,发现原来它上面的方法不是最简便的。所以在这里和大家讨论一下。

  首先上文中的内容我就不再重复了。我要改变的关键是他选取图片非白色区域的方法十分繁琐。而且我曾经试过几张图,都会变得不伦不类的,我也很难说出为什么。在我迷茫的时候我发现原来c++ builder6有自己的一些方法可以非常轻易的完成不规则窗体的设计。下面是我的代码:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   Form1->Color=clWhite;
   Form1->TransparentColorValue=clWhite;
   Form1->TransparentColor=true;
   Form1->BorderStyle=bsNone;

/*
Image1->Transparent=true;
//这一行可要可不要,没有什么作用

//如果窗体上除了图片就没有别的可以显示的东西,上面的就已经可以了。如果有别的东西就可以使用下面这段代码。
HRGN WndRgn,TempRgn;
WndRgn=CreateRectRgn(0,30,Image1->Width,Image1->Height);
//设定矩形区域的API
//显示不规则窗体
SetWindowRgn(Handle,WndRgn,true);
//SetWindowPos(Handle,HWND_TOP,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

//去除窗体本来颜色。会出问题,这是为什么呢?希望各位大侠指点。
Form1->Color=clBtnFace;
Form1->TransparentColorValue=clBtnFace;

//如果是将以上代码防在butten里面,做出来的窗体易懂的时候有边缘白线这是为什么?
*/

这样我们简直可以完全不用书写代码只是更改窗体属性就完成不规则窗体的设计。而且这样应该更加高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值