C++Builder 中怎样做平行四边形按钮(带圆角的)??哪儿有没有控件或自定义组件下载???
1个回答
展开全部
---- 下面给出园形、三角形按钮实现的具体代码。为了直观显示效果,将窗体的背景色设置为了黑色(Color设置为clBtnText),并将两个按钮的Cursor设置crCross。在窗体放置两个Button按钮,分别定义为Rbutton、Tbutton。实现窗口区域的最佳时机是在窗体首次创建时,所以将处理程序放在OnCreate事件中。
void __fastcall TForm1::FormCreate(Tobject *Sender){//创建园形按钮(若是带圆角的四边形调节CreateEllipticRgn的参数)
HRGN hRgnR = CreateEllipticRgn(0,0,Rbutton-
Width,Rbutton-Height);
SetWindowRgn(Rbutton-Handle,hRgnR,TRUE);
//创建三角形按钮
TrPoint[0].x=Tbutton-Width/2;
TrPoint[0].y=0;
TrPoint[1].x=0;
TrPoint[1].y=Tbutton-Height;
TrPoint[2].x=Tbutton-Width;
TrPoint[2].y=Tbutton-Height;
HRGN hRgnT = CreatePolygonRgn(TrPoint,3,ALTERNATE);
SetWindowRgn(Tbutton-Handle,hRgnT,TRUE);}其中TrPoint在Unit.h头文件中定义如下:
private: // User declarations
POINT TrPoint[3];
---- 上面的代码在按钮的边界内分别创建了一个园形区域和一个三角形区域,然后作为新的窗口区域把它赋给各自的按钮。在创建园形按钮时使用了椭园形区域创建函数,要使按钮为园形在设计时该按钮应设计为正方形。另外区域是以按钮坐标的形式定义的,而不是用屏幕坐标。(0,0)点是按钮的最左上角,而(宽,高)点是按钮的最右下角。
---- 应该注意的是,一旦将区域句柄赋给按钮,就不能再对区域句柄作任何操作。如果将区域句柄赋给按钮后,修改或删除这个句柄将导致程序崩溃。
---- 光标只在园形和三角形区域内变为crCross形状。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询