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

客服QQ:3315713922

怎样在C++Builder中保持控件的大小以及位置呢?

作者:课课家教育     来源: http://www.kokojia.com点击数:1927发布时间: 2017-01-04 08:29:19

标签: C++Builder编程代码容器控件

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

  每一位程序员在进行开发程序的时候,都会需要使用到控件吧。控件是对数据和方法的封装,控件可以有自己的属性和方法。那么今天小编会带大家认识一下,怎样在C++Builder中保持控件的大小以及位置呢?

怎样在C++Builder中保持控件的大小以及位置呢?_C++Builder_编程代码_容器控件_课课家

  在教程开始之前,小编先给大家介绍一下C++Builder吧。C++Builder是由Borland公司推出的一款可视化集成开发工具,它具有快速的可视化开发环境。但是正正就是因为它是一个可视化编程工具,那么我们只需要把控件拖放到Form以后,控件的位置就开始固定死了。除此之外,大家还会发现一点,只要随着屏幕分辨率或者是Form大小的改变,Form本身以及控件的位置通常都会变得十分的混乱。如果想要了解其解决方法,那就跟着小编一起来学习把。在这篇教程中,小编会大家介绍一些正确定位控件及Form的方法。现在就进入正题吧。

  一、使用OnResize事件改变控件大小以及位置

  那么我们就行如何在C++Builder中改变控件大小以及位置呢?没错,就是利用OnResize事件。在C++Builder/Delphi中的Form控件有一个OnResize事件,Form的所有和大小变化有关系的动作(比如说:创建Form、还原/最大化/最小化、使用鼠标拖动改变Form的大小等动作)都可以触发这个OnResize事件。因此,在这个OnResize事件中可以动态地改变每一个控件的位置。这样的话,就可以确保它在Form中的相对位置的正确性了。正正因为Delphi和CBuilder之间的程序有非常多的共同的地方,所以小编在这篇教程中仅仅只会举例出CBuilder的代码。如果大家想要了解Delphi的程序代码可以在网上搜索相关的资料。

  首先小编先给大家介绍一下如何可以确保控件在任何的情况下都可以居中显示。具体的编程代码,如图所示:

程序一

  其实大家只需要稍微的修改一下上面的编程代码,就可以让控件始终都保持在任何想要的位置。同样的道理,如果大家想要改变控件的大小也可以使用OnResize事件。当Form中有很多控件的时候,如果要分别对各个控件单独的调整位置,这是一件十分麻烦的事情。在TFrom类中有一个Controls数组维护所有From中的控件,我们只需要使用它就可以非常方便地对全部的控件进行操作了。具体的编程代码,如图所示:

程序二

  二、使用“容器”控制成组控件位置

  大家可以看到上面的程序代码,可以对维持全部控制到统一位置十分的方便。但是也有一个不好的地方,那就是不利于对成组控件进行任何的操作。

  在C++Builder中为大家提供了一些可以安放其它控件的“容器”控件,比如说:TPanel、TGroupBox等控件。我们可以把控件放在“容器”控件中,接着就只需要对“容器”控件进行操作,那样就可以达到成组控制控件的目的了。如果是使用“容器”控件控制控件位置的结果,那么全部控件都会自动的居中显示。但是我们也发现了,那就是在GroupBox1控件中的子控件并没有居中显示,这是为什么呢?那是因为Controls数组仅仅只会维护Form的直接子控件,对于Form中控件的子控件都会无能为力的。那么GroupBox1控件中的子控件就会依然在初始的位置,所以我们一定要编写相对应代码动态控制它的大小以及位置。这种技术是十分重要的,特别是在动态改变“容器”控件大小的时候就更为重要了。其实,From以及“容器”控件这两者同样拥有Controls数组,仅仅只需要对其进行与上面的编程代码类似的操作就可以了。具体的编程代码,如图所示:

程序三

  三、在不同分辨率下维护窗体大小以及位置

  如果是商业程序的话,那么一般情况下都需要在每一种分辨率下进行运行,正确的判断一下当前分辨率就会显得十分重要了。Windows函数里面的GetDeviceCaps就可以返回到任意一个设备描述表中设备大小。

  在GetDeviceCaps中有两个参数,第一个参数是要来查询的设备描述表句柄,第二个参数是要查询参数的类型,其中VERTRES和HORZRES分别代表的意思的就是垂直以及屏幕水平分辨率。下面的程序代码就是获得当前屏幕分辨率的源代码。一般情况下,我们可把这一段代码放置在“工程文件”(比如说Project1.cpp)中,并且还要把i、j定义成为全局变量。接下来我们就可以使用在前面教程中介绍过的技术来控制每一种屏幕元素的位置以及大小。具体的编程代码,如图所示:

程序四

  温馨提示:其实我们使用一模一样的方法,就可以对不同大小纸张的打印进行控制了。但是在这里小编就不再赘述,如果有兴趣的朋友可以在网上查看一下GetDeviceCaps帮助及打印帮助。

  小编结语:

  通过这篇编程语言教程,不知道大家是否已经学会了怎样在C++Builder中保持控件的大小以及位置呢?如果还是不太懂,可以看多几遍教程哟,毕竟C++Builder还是一种较为受欢迎的程序语言。课课家教育每天更新不同的教程,一起来学习吧。

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