如何改变控件的形状?(50分)

  • 主题发起人 主题发起人 英雄无敌
  • 开始时间 开始时间

英雄无敌

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位大虾,我想将一些标准的控件的形状改变一下做成另外一个控件,如:
button形状由矩形改为圆角矩形,不知道如何下手,覆盖哪个方法。请你们中哪位指点
一下,最好能写一个简单点的例子,太复杂了我可能看不懂,谢谢。
 
呜呜,没有人理我,好吧,挥泪大甩卖,我再加50分,快来抢分吧。
 
下载个LMD控件包吧,里面什么奇形怪状的控件都有。
 
对,见过一个roundbutton控件,当时没认真分析它的代码!
 
可我想自己学着做,softdog&coolbaby你们能教我吗?
 
看一下VCL的源代码不就知道了。
 
用 CreateRoundRectRgn API 函数就可以产生一个 圆角矩形的 HRGN 句柄:
然后用 SetWindowRgn 函数将这个按钮的形状设置为矩形,至于 3D 边框嘛……自己画了
:-P
 
从没有做过,不过从理论上分析,从TWinControl继承下来的控件,
都有一个HANDLE属性,应该可以用 CreateEllipticRgn来创建一
个特别的区域,然后用SetWindowRgn(控件.Handle... )。如果
是从TGraphicControl继承下来的控件,可以重载它的PAINT方法,
画出自己想要的图形。(以前试着从TGraphicControl继承了一
个控件,试图做一个各种形状的按钮,可是没做完,但思路是可
行的。)
 
接受答案了.
 
后退
顶部