微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件

LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件

时间:11-13 来源:3721RD 点击:

1.4 Tab 控件

1.4.1 Tab 控件设计方法

Tab 控件类似分隔标签或一组文件夹上的标签,使用Tab 控件可以在应用程序窗口或对话框中的同一区域定义多个页面。该控件包含了一个或多个panel 面板集合。在设计时和运行时,可以设置其属性来控制Tab 控件的外观,如可设置标签以多行形式显示,将标签放在Tab 控件的上下左右各种位置,并可在标签上显示图标。

LabWindows/CVI 中的Tab 控件最初是由Panel 面板转换而来,控件中的每个页面都有自己的句柄(类似于面板句柄),可以认为Tab 控件是一个容器,里面包含了面板的集合,因此,Tab 控件内也可重复内嵌Tab 控件。正是由于Tab 控件具有这些特点与属性,在使用某些函数时,如SetCtrlVal 、GetCtrlVal 等时,参数中的面板句柄设置应区分是一般面板句柄还是Tab 页面句柄。

在LabWindows/CVI 中,Tab 控件是最为特殊的一个控件,这主要是因为引入了容器中的容器概念(笔者定义)。与其他语言最大的区别是,在LabWindows/CVI 中,一个面板即为一个容器,所有的控件必须放置在这个容器内,不允许在这个面板上存在其他的容器,如果换个角度,把容器看作句柄,也就是说,一个面板只有一个句柄,控件没有句柄,只有ID(ActiveX 控件除外),即使是Radio Group 这类控件,严格上来说也是由Tree 控件衍生而来,不具有控件句柄。这样设计的好处是,LabWindows/CVI 的消息传递是扁平化的,只在一个容器中进行消息循环,事件响应及时;缺点也显而易见,不能设计出像Visual Basic 或Delphi 中非常完美的控件组或页框(如Frame),但这也是LabWindows/CVI 设计的一大优点,简化设计思路,使程序设计者更加专注于逻辑系统设计而非语言本身。举例说明,如果在Visual Basic 或Delphi 中建有一个工程,Form (窗体)里面有一个Tab 控件,Tab 控件内嵌套一个Numeric 控件,可以对其进行属性操作,即获得或设置属性值;同理,在LabWindows/CVI 集成开发环境中也建有一个工程,Panel(面板)里面有一个Tab 控件,控件内嵌套一个Numeric 控件,则引用方法如下:

(1)Visual Basic 语句

赋值

Form.Tab.Numeric.value = 1

取值

x = Form.Tab.Numeric.value

(2)Delphi 语句

赋值

Form.Tab.Numeric.value := 1

取值

x := Form.Tab.Numeric.value

(3)LabWindows/CVI 函数

赋值(函数语句取自本例程)

panelHandle = LoadPanel (0, "Tab 控件.uir", PANEL); GetPanelHandleFromTabPage (panelHandle, PANEL_TAB, 0, &TabPanelHandle); SetCtrlVal (TabPanelHandle, TABPANEL_NUMERICTHERM, temp); 取值(函数语句取自本例程)

panelHandle = LoadPanel (0, "Tab 控件.uir", PANEL); GetPanelHandleFromTabPage (panelHandle, PANEL_TAB, 0, &TabPanelHandle); GetCtrlVal (TabPanelHandle, TABPANEL_NUMERICKNOB, &temp);

有意思的是,Visual Basic 和Delphi 对控件属性的引用中用了3 个".",这3 个"."对应于LabWindows/CVI 的3 个函数语句,三种语言之间,属性获得或设置都是从容器到实例的逐次递进引用,逻辑上是相同的,只是表现方式不同,其逻辑关系如图1-9 所示。

(a) Visual Basic 或Delphi (b)LabWindows/CVI

图1-9 属性获得或设置逻辑关系

与Visual Basic 和Delphi 的差别也可以很清晰地发现,LabWindows/CVI 的编码量巨大,函数量众多,而且大量的编码是用在属性设置上的,为了克服编码量大、函数多程序员不容易记,书写容易出现错误的缺点,LabWindows/CVI 引入函数面板(Function Panel),即我们常用的.fp 文件,使得对于属性的编程只需要用函数面板输入几个参数就可以实现大部分功能,简单、易操作。

在编辑状态,双击面板中的Tab 控件,弹出Edit Tab 对话框,如图1-10 所示。在Control Apperarance 框中,Tabs Fit Mode 用来设置单行、多行显示等,默认为单行显示,Tab Location 用来设置Tab 标签的位置,默认放置在控件的左上角。在Tab 框中,可以设置每一个页面的标签、常量名等,可以进行添加、剪切、复制、粘贴,页面的前后移动,对页面标签添加图标以及设置每个页面控件的焦点转移次序Tab Order 等操作。

图1-10 Edit Tab 对话框

1.4.2 Tab 控件程序设计

(1)面板设计

编写一个Tab 控件属性设置程序,能够响应页面(标签页)内的事件、设置标签、计算Tab 页面数目,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top