下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

在C++Builder中实现异形按钮的操作步骤

作者:课课家教育     来源: http://www.kokojia.com点击数:1193发布时间: 2017-01-28 13:00:55

标签: C++Builder创建函数编程代码

大神带你学编程,欢迎选课

  今天小编要为大家带来的教程是:在C++Builder中实现异形按钮的操作步骤。那么我们怎样才可以实现“异形”按钮呢?其实方法总的来说,还是比较简单的,现在就跟着小编一起来学习一下吧,详细请参见下面的教程。

在C++Builder中实现异形按钮的操作步骤_C++Builder_创建函数_编程代码_课课家

  大家都应该知道一点,那就是在window95里面新增加了一个对于窗口区域概念的支持。正正就是因为这个支持,让窗口区域就是所定义的窗口看上去的形状,窗口区域就是作为窗口的一个实际边界区域。这样子做的话,窗口区域不仅仅可以定义了响应鼠标击键事件的响应窗口区域以及窗口下隐含区域,另外一个方面还定义了窗口的可画区域,真是两全其美啊。“异形”按钮的各种各样的形状是在运行的时候进行设置的,而并不是在设计的时候进行设置。我们在进行设计的时候,“异形”按钮的形状依然是保持着正方形或者是长方形这两种形状的。

  那么究竟如何进行设计“异形”钮的形状呢?整一个设计过程,主要分成了两个步骤,现在我们就一起来学习一下吧。

  操作步骤一:

  首先我们第一步要做的就是先将“异形”按钮的外形创建起来,简单来说,就是定义一下窗口区域。方法非常的简单,只需要使用api的区域创建函数就可达到这个目的了,大家不放可以尝试一下。大家可以发现,区域创建函数真的有很多很多,主要的函数就有createellipticrgn、createroundrectrgn、createpolygonrgn以及createrectrgn,这些都是用于创建各种不同类型的区域显示。假如说现在我们需要一个较为复杂区域形状,那么我们就可以分别使用不一样的区域函数创建各种不同的区域,接下来我们只要调用一下combinergnapi函数就可以将它们统统组合起来了。总的来说,这样就不仅仅可以创建出三角形以及圆形的按钮,另外我们还可以创建出其它各种各样形状的“异形”按钮。

  操作步骤二:

  好了,当我们把第一步完成以后,现在就来完成第二个操作步骤吧。第二步我们要做的就是把区域显示应用到窗口上面去。一旦使用了区域函数,那么就可以创建了一个新的区域显示,只需要使用setWindowsrgn函数就可以把这个区域应用到窗口上。

  为了方便大家的理解,小编在这里就给大家看一下三角形以及圆形按钮实现的具体编程代码吧。但是小编为了可以更加直观的将效果显示出来,所以就把窗体的背景颜色设置成为了黑色(就是将color设置成为clbtntext就可以为了),并且还要把两个按钮的cursor属性设置成为crcross。接下来,我们还要在窗体里面放置两个button按钮,将这两个按钮分别重命名为tbutton、rbutton。大家要记住一点,那就是实现窗口区域的最佳时机就是在窗体第一次创建的时候,所以我们要把处理程序放在oncreate事件当中。具体的程序代码,如下图:

具体的程序代码

  其中,trpoint在unit.h头文件当中的具体定义如下所示:

  private: // user declarations

  point trpoint[3];

  为了可以让大家更好的理解编程代码,小编在这里就简单的解释一下代码吧。在上面显示出来的编程代码,是在按钮的边界内创建了两个区域,分别是一个三角形区域以及一个园形区域,然后这都是作为新的窗口区域把它赋予给各自的按钮。在创建园形按钮的时候,小编使用的是椭圆形区域创建函数,这是为了可以让按钮为园形在设计的时候这个按钮应该设计成为正方形。另外一个区域的话,小编就是以按钮坐标的形式进行定义的,而不是使用屏幕坐标。(0,0)点就是按钮的最左上角的坐标,而(宽,高)点是位于按钮的最右下角的位置。

  注意事项:但是我们要注意一点,那就是一旦把区域句柄赋予给了按钮,那么我们就不可以再继续对区域句柄作任何的操作了。假如说我们要把区域句柄赋予给按钮以后,删除或者是修改这个句柄就将会导致该应用程序崩溃了。所以小编劝诫大家一定千万不要这样做哟,要不然的话,大家的应用程序虽然是较为花哨了一些,但是却是“拾了芝麻丢了西瓜”而因小失大哟,因此大家一定要注意点哟!小编说到这里,更加想和大家说的是,应用程序设计的时候首先要注意这个“稳定性”,至于其它的都是较为次要的。

  小编结语:

  今天的教程“在C++Builder中实现异形按钮的操作步骤”,小编就已经介绍完毕了,大家都理解清楚了吗?如果你也有这样的需要,那就赶快来学习一下吧。更多更全面的编程语言教程,尽在课课家教育。

赞(18)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程